from fastapi import APIRouter, Depends, Query from common.models.gmodel import PageParams from router.v1.validator.dependencies import RemoveNoneResponse, RequireDeveloper from services.ops_service import OpsService from .protocol import Res_OpsSites, Res_OpsUsers # 내부 운영(개발자) 전용 조회 — 회사 스코프를 걷어낸 전 계정 사이트·유저 목록. router = APIRouter(prefix="/v1/ops", tags=["Ops"]) @router.get(path="/sites", response_model=Res_OpsSites, summary="전 계정 사이트 목록(개발자 전용)") async def list_sites( service: OpsService = Depends(), pg: PageParams = Depends(), search: str | None = Query(None, description="상호·소유자 이메일·이름·로그인 아이디 부분 일치"), category: int | None = Query(None, description="PlaceCategory"), _user=Depends(RequireDeveloper), ): return RemoveNoneResponse(await service.list_sites(pg, search, category)) @router.get(path="/users", response_model=Res_OpsUsers, summary="전 계정 목록(개발자 전용)") async def list_users( service: OpsService = Depends(), pg: PageParams = Depends(), search: str | None = Query(None, description="이메일·이름·로그인 아이디 부분 일치"), _user=Depends(RequireDeveloper), ): return RemoveNoneResponse(await service.list_users(pg, search))