from fastapi import APIRouter, Depends from backend.dependecies import SessionDependency, CurrentUserDependency from schemas.group import * from services.auth import authorized_user from services.deal_group import DealGroupService deal_group_router = APIRouter( prefix='/deal-group', tags=['deal-group'], ) @deal_group_router.patch( '/', response_model=DealGroupUpdateResponse, operation_id='update_deal_group', dependencies=[Depends(authorized_user)] ) async def update_group( request: DealGroupUpdateRequest, session: SessionDependency, ): return await DealGroupService(session).update_group(request) @deal_group_router.post( '/', response_model=DealCreateGroupResponse, operation_id='create_deal_group', dependencies=[Depends(authorized_user)] ) async def create_group( request: DealCreateGroupRequest, session: SessionDependency, user: CurrentUserDependency ): return await DealGroupService(session).create_group(user, request) @deal_group_router.patch( '/change-status', response_model=DealGroupChangeStatusResponse, operation_id='change_status', dependencies=[Depends(authorized_user)] ) async def change_status( request: DealGroupChangeStatusRequest, session: SessionDependency, user: CurrentUserDependency ): return await DealGroupService(session).change_group_status(user,request) @deal_group_router.post( '/deal', response_model=DealAddToGroupResponse, operation_id='add_deal', dependencies=[Depends(authorized_user)] ) async def add_deal( request: DealAddToGroupRequest, session: SessionDependency, user: CurrentUserDependency ): return await DealGroupService(session).add_deal(user, request) @deal_group_router.delete( '/deal', response_model=DealRemoveFromGroupResponse, operation_id='remove_deal', dependencies=[Depends(authorized_user)] ) async def remove_deal( request: DealRemoveFromGroupRequest, session: SessionDependency, ): return await DealGroupService(session).remove_deal(request)