feat: groups

This commit is contained in:
2025-10-17 19:48:51 +04:00
parent 35869e2ea5
commit 6b1b4109c6
11 changed files with 288 additions and 12 deletions

59
routers/deal_group.py Normal file
View File

@ -0,0 +1,59 @@
from pathlib import Path
from fastapi import APIRouter
from backend.dependecies import SessionDependency
from schemas.deal_group import *
from services import DealGroupService
router = APIRouter(tags=["deal-group"])
@router.patch(
"/{pk}",
response_model=UpdateDealGroupResponse,
operation_id="update_deal_group",
)
async def update_group(
request: UpdateDealGroupRequest,
session: SessionDependency,
pk: int = Path(),
):
return await DealGroupService(session).update(pk, request)
@router.post(
"/",
response_model=CreateDealGroupResponse,
operation_id="create_deal_group",
)
async def create_group(
request: CreateDealGroupRequest,
session: SessionDependency,
):
return await DealGroupService(session).create(request)
@router.delete(
"/{pk}",
response_model=DeleteDealGroupResponse,
operation_id="delete_deal_group",
)
async def delete_group(
session: SessionDependency,
pk: int = Path(),
):
return await DealGroupService(session).delete(pk)
@router.post(
"/{pk}/deals",
response_model=UpdateDealsInGroupResponse,
operation_id="update_deals_in_group",
)
async def update_deals_in_group(
request: UpdateDealsInGroupRequest,
session: SessionDependency,
pk: int = Path(),
):
return await DealGroupService(session).update_deals_in_group(pk, request)