from typing import Annotated from fastapi import APIRouter, Depends from sqlalchemy.ext.asyncio import AsyncSession from backend.session import get_session from schemas.service import * from services.auth import get_current_user from services.service import ServiceService service_router = APIRouter( prefix="/service", tags=['service'], dependencies=[Depends(get_current_user)] ) @service_router.get( '/get-all', response_model=ServiceGetAllResponse, operation_id="get_all_services" ) async def get_all( session: Annotated[AsyncSession, Depends(get_session)] ): return await ServiceService(session).get_all() @service_router.post( '/create', response_model=ServiceCreateResponse, operation_id="create_service" ) async def create( session: Annotated[AsyncSession, Depends(get_session)], request: ServiceCreateRequest ): return await ServiceService(session).create(request) @service_router.post( '/update', response_model=ServiceUpdateResponse, operation_id="update_service" ) async def update( session: Annotated[AsyncSession, Depends(get_session)], request: ServiceUpdateRequest ): return await ServiceService(session).update(request) @service_router.post( '/delete', response_model=ServiceDeleteResponse, operation_id="delete_service" ) async def delete( session: Annotated[AsyncSession, Depends(get_session)], request: ServiceDeleteRequest ): return await ServiceService(session).delete(request) @service_router.get( '/categories/get-all', response_model=ServiceGetAllCategoriesResponse, operation_id="get_all_service_categories" ) async def get_all_categories( session: Annotated[AsyncSession, Depends(get_session)] ): return await ServiceService(session).get_all_categories() @service_router.post( '/categories/create', response_model=ServiceCreateCategoryResponse, operation_id="create_service_category" ) async def create_category( session: Annotated[AsyncSession, Depends(get_session)], request: ServiceCreateCategoryRequest ): return await ServiceService(session).create_category(request)