Compare commits
No commits in common. "feat/workspace-lazy-loading" and "dev" have entirely different histories.
feat/works
...
dev
1 changed files with 0 additions and 52 deletions
|
|
@ -54,17 +54,6 @@ class Workspace extends Model
|
|||
{
|
||||
use HasFactory;
|
||||
|
||||
/**
|
||||
* Relationships that should be eager-loaded by default.
|
||||
*
|
||||
* Explicitly empty to prevent N+1 queries when listing workspaces.
|
||||
* Use scopeWithCommon() to eager-load the most frequently needed
|
||||
* relationships, or call ->with() explicitly for specific use cases.
|
||||
*
|
||||
* @var array<int, string>
|
||||
*/
|
||||
protected $with = [];
|
||||
|
||||
protected static function newFactory(): WorkspaceFactory
|
||||
{
|
||||
return WorkspaceFactory::new();
|
||||
|
|
@ -789,47 +778,6 @@ class Workspace extends Model
|
|||
return $query->orderBy('sort_order');
|
||||
}
|
||||
|
||||
/**
|
||||
* Scope to eager-load the most commonly needed relationships.
|
||||
*
|
||||
* Use this when listing workspaces or rendering dashboards to avoid
|
||||
* N+1 queries. Only loads core tenant relationships that are almost
|
||||
* always needed; module-specific relationships (social, analytics,
|
||||
* trust, notify, commerce, etc.) should be loaded explicitly.
|
||||
*
|
||||
* Example: Workspace::withCommon()->paginate(20)
|
||||
*/
|
||||
public function scopeWithCommon($query)
|
||||
{
|
||||
return $query->with([
|
||||
'users',
|
||||
'members',
|
||||
'teams',
|
||||
'workspacePackages',
|
||||
'namespaces',
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Scope to add commonly needed relationship counts.
|
||||
*
|
||||
* Lighter alternative to withCommon() when only counts are needed
|
||||
* (e.g. admin listing pages). Uses withCount() to add _count
|
||||
* columns without loading full relationship collections.
|
||||
*
|
||||
* Example: Workspace::withCommonCounts()->paginate(20)
|
||||
*/
|
||||
public function scopeWithCommonCounts($query)
|
||||
{
|
||||
return $query->withCount([
|
||||
'users',
|
||||
'members',
|
||||
'teams',
|
||||
'workspacePackages',
|
||||
'invitations',
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert to array format used by WorkspaceService.
|
||||
*/
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue