# app/modules/tenancy/routes/api/store_profile.py """ Store profile management endpoints. Store Context: Uses token_store_id from JWT token (authenticated store API pattern). The get_current_store_api dependency guarantees token_store_id is present. """ import logging from fastapi import APIRouter, Depends from sqlalchemy.orm import Session from app.api.deps import get_current_store_api from app.core.database import get_db from app.modules.tenancy.schemas.auth import UserContext from app.modules.tenancy.schemas.store import StoreResponse, StoreUpdate from app.modules.tenancy.services.store_service import store_service store_profile_router = APIRouter(prefix="/profile") logger = logging.getLogger(__name__) @store_profile_router.get("", response_model=StoreResponse) def get_store_profile( current_user: UserContext = Depends(get_current_store_api), db: Session = Depends(get_db), ): """Get current store profile information.""" store = store_service.get_store_by_id(db, current_user.token_store_id) return store @store_profile_router.put("", response_model=StoreResponse) def update_store_profile( store_update: StoreUpdate, current_user: UserContext = Depends(get_current_store_api), db: Session = Depends(get_db), ): """Update store profile information.""" # Service handles permission checking and raises InsufficientPermissionsException if needed return store_service.update_store( db, current_user.token_store_id, store_update, current_user )