@@ -40,7 +40,6 @@ class Tenant extends Model {
4040 'path ' ,
4141 'domain ' ,
4242 'sub_domain ' ,
43-
4443 'database_name ' ,
4544 'database_username ' ,
4645 'database_password ' ,
@@ -54,17 +53,20 @@ class Tenant extends Model {
5453 'is_active ' ,
5554 'is_deactivated_at ' ,
5655 'notes ' ,
57-
5856 'meta ' ,
5957 'created_by ' ,
6058 'updated_by ' ,
6159 'deleted_by '
6260 ];
6361
62+ //-------------------------------------------------
63+ protected $ hidden = [
64+ 'database_password ' ,
65+ ];
6466 //-------------------------------------------------
6567 protected $ appends = [
6668
67- 'db_connection_name '
69+ 'db_connection_name ' ,
6870
6971 ];
7072 //-------------------------------------------------
@@ -75,7 +77,7 @@ public function setDatabasePasswordAttribute($value)
7577 $ this ->attributes ['database_password ' ] = Crypt::encrypt ($ value );
7678 }
7779 }
78-
80+ //-------------------------------------------------
7981 //-------------------------------------------------
8082 public function setMetaAttribute ($ value )
8183 {
@@ -257,10 +259,47 @@ public static function createItem($request)
257259 return $ response ;
258260
259261 }
262+
263+ public static function recountRelations ()
264+ {
265+ $ list = static ::withTrashed ()->select ('id ' )->get ();
266+
267+ if ($ list )
268+ {
269+ foreach ($ list as $ item )
270+ {
271+ $ item ->count_apps_active = static ::countActiveApps ($ item ->id );
272+ $ item ->count_apps = App::all ()->count ();
273+ $ item ->save ();
274+ }
275+ }
276+
277+ }
278+
279+
280+ //-------------------------------------------------
281+ public static function countActiveApps ($ id )
282+ {
283+
284+ $ tenant = static ::withTrashed ()->where ('id ' , $ id )->first ();
285+
286+ if (!$ tenant )
287+ {
288+ return 0 ;
289+ }
290+
291+ return $ tenant ->apps ()->wherePivot ('is_active ' , 1 )->count ();
292+ }
260293 //-------------------------------------------------
261294 public static function getList ($ request )
262295 {
263296
297+ if (isset ($ request ->recount ) && $ request ->recount == true )
298+ {
299+ static ::recountRelations ();
300+ App::recountRelations ();
301+ }
302+
264303
265304 if ($ request ['sort_by ' ])
266305 {
@@ -284,14 +323,18 @@ public static function getList($request)
284323
285324 if (isset ($ request ->q ))
286325 {
326+ if (isset ($ request ['search_by ' ]) && $ request ['search_by ' ])
327+ {
328+ $ list ->where ($ request ['search_by ' ], 'LIKE ' , '% ' .$ request ->q .'% ' );
287329
288- $ list ->where (function ($ q ) use ($ request ){
289- $ q ->where ('name ' , 'LIKE ' , '% ' .$ request ->q .'% ' )
290- ->orWhere ('slug ' , 'LIKE ' , '% ' .$ request ->q .'% ' );
291- });
330+ }else {
331+ $ list ->where (function ($ q ) use ($ request ){
332+ $ q ->where ('name ' , 'LIKE ' , '% ' .$ request ->q .'% ' )
333+ ->orWhere ('slug ' , 'LIKE ' , '% ' .$ request ->q .'% ' );
334+ });
335+ }
292336 }
293337
294-
295338 $ data ['list ' ] = $ list ->paginate (config ('vaahcms.per_page ' ));
296339
297340 $ response ['status ' ] = 'success ' ;
@@ -514,11 +557,17 @@ public static function validation($inputs)
514557 {
515558
516559 $ rules = array (
560+ 'vh_saas_server_id ' => 'required|max:150 ' ,
517561 'name ' => 'required|max:150 ' ,
518562 'slug ' => 'required|max:150 ' ,
519- 'vh_saas_server_id ' => 'required|max:150 ' ,
563+ 'path ' => 'max:150 ' ,
564+ 'domain ' => 'max:150 ' ,
565+ 'sub_domain ' => 'max:150 ' ,
520566 'database_name ' => 'required|alpha_dash|max:20 ' ,
521567 'database_username ' => 'required|alpha_dash|max:20 ' ,
568+ 'database_charset ' => 'max:150 ' ,
569+ 'database_collation ' => 'max:150 ' ,
570+ 'notes ' => 'max:255 ' ,
522571 );
523572
524573 $ validator = \Validator::make ( $ inputs , $ rules );
@@ -773,7 +822,7 @@ public static function migrate($inputs, $tenant_column_value, $tenant_column_nam
773822
774823 $ db_connection_name = $ tenant ->db_connection_name ;
775824
776- $ response = \VaahArtisan::migrate ($ inputs ['command ' ], $ db_connection_name , $ inputs ['path ' ]);
825+ $ response = \VaahArtisan::migrate ($ inputs ['command ' ], $ inputs ['path ' ], $ db_connection_name );
777826
778827 return $ response ;
779828
@@ -834,7 +883,9 @@ public static function seed($inputs, $tenant_column_value, $tenant_column_name='
834883 $ inputs ['class ' ] = null ;
835884 }
836885
837- $ response = \VaahArtisan::seed ($ inputs ['command ' ], $ db_connection_name , $ inputs ['class ' ]);
886+
887+ $ response = \VaahArtisan::seed ($ inputs ['command ' ], $ inputs ['class ' ], $ db_connection_name );
888+
838889
839890 return $ response ;
840891
0 commit comments