refactor(arch): move auth schemas to tenancy module and add cross-module service methods
Some checks failed
Some checks failed
Move all auth schemas (UserContext, UserLogin, LoginResponse, etc.) from legacy models/schema/auth.py to app/modules/tenancy/schemas/auth.py per MOD-019. Update 84 import sites across 14 modules. Legacy file now re-exports for backwards compatibility. Add missing tenancy service methods for cross-module consumers: - merchant_service.get_merchant_by_owner_id() - merchant_service.get_merchant_count_for_owner() - admin_service.get_user_by_id() (public, was private-only) - platform_service.get_active_store_count() Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -329,6 +329,49 @@ class MerchantService:
|
||||
|
||||
return merchant, old_owner, new_owner
|
||||
|
||||
def get_merchant_by_owner_id(
|
||||
self, db: Session, owner_user_id: int
|
||||
) -> Merchant | None:
|
||||
"""
|
||||
Get merchant by owner user ID.
|
||||
|
||||
Args:
|
||||
db: Database session
|
||||
owner_user_id: Owner user ID
|
||||
|
||||
Returns:
|
||||
First active merchant owned by the user, or None
|
||||
"""
|
||||
return (
|
||||
db.query(Merchant)
|
||||
.filter(
|
||||
Merchant.owner_user_id == owner_user_id,
|
||||
Merchant.is_active == True, # noqa: E712
|
||||
)
|
||||
.first()
|
||||
)
|
||||
|
||||
def get_merchant_count_for_owner(
|
||||
self, db: Session, owner_user_id: int, active_only: bool = True
|
||||
) -> int:
|
||||
"""
|
||||
Count merchants owned by a user.
|
||||
|
||||
Args:
|
||||
db: Database session
|
||||
owner_user_id: Owner user ID
|
||||
active_only: Only count active merchants
|
||||
|
||||
Returns:
|
||||
Number of merchants
|
||||
"""
|
||||
query = db.query(func.count(Merchant.id)).filter(
|
||||
Merchant.owner_user_id == owner_user_id
|
||||
)
|
||||
if active_only:
|
||||
query = query.filter(Merchant.is_active == True) # noqa: E712
|
||||
return query.scalar() or 0
|
||||
|
||||
def get_merchant_stores(
|
||||
self, db: Session, merchant_id: int, skip: int = 0, limit: int = 100
|
||||
) -> tuple[list, int]:
|
||||
|
||||
Reference in New Issue
Block a user