feat: modules, products, services, services kits
This commit is contained in:
0
modules/fulfillment_base/routers/__init__.py
Normal file
0
modules/fulfillment_base/routers/__init__.py
Normal file
137
modules/fulfillment_base/routers/deal_product.py
Normal file
137
modules/fulfillment_base/routers/deal_product.py
Normal file
@ -0,0 +1,137 @@
|
||||
from fastapi import APIRouter, Path
|
||||
|
||||
from backend.dependecies import SessionDependency
|
||||
from modules.fulfillment_base.schemas.deal_product import *
|
||||
from modules.fulfillment_base.schemas.product_service import *
|
||||
from modules.fulfillment_base.services import DealProductService, ProductServiceService
|
||||
|
||||
router = APIRouter(tags=["deal-product"])
|
||||
|
||||
# region DealProduct
|
||||
|
||||
|
||||
@router.get(
|
||||
"/{dealId}",
|
||||
response_model=GetDealProductsResponse,
|
||||
operation_id="get_deal_products",
|
||||
)
|
||||
async def get_deal_products(
|
||||
session: SessionDependency,
|
||||
deal_id: int = Path(alias="dealId"),
|
||||
):
|
||||
return await DealProductService(session).get_all(deal_id)
|
||||
|
||||
|
||||
@router.post(
|
||||
"/",
|
||||
response_model=CreateDealProductResponse,
|
||||
operation_id="create_deal_product",
|
||||
)
|
||||
async def create_deal_product(
|
||||
session: SessionDependency,
|
||||
request: CreateDealProductRequest,
|
||||
):
|
||||
return await DealProductService(session).create(request)
|
||||
|
||||
|
||||
@router.patch(
|
||||
"/{dealId}/product/{productId}",
|
||||
response_model=UpdateDealProductResponse,
|
||||
operation_id="update_deal_product",
|
||||
)
|
||||
async def update_deal_product(
|
||||
session: SessionDependency,
|
||||
request: UpdateDealProductRequest,
|
||||
deal_id: int = Path(alias="dealId"),
|
||||
product_id: int = Path(alias="productId"),
|
||||
):
|
||||
return await DealProductService(session).update(deal_id, product_id, request)
|
||||
|
||||
|
||||
@router.delete(
|
||||
"/{dealId}/product/{productId}",
|
||||
response_model=DeleteDealProductResponse,
|
||||
operation_id="delete_deal_product",
|
||||
)
|
||||
async def delete_deal_product(
|
||||
session: SessionDependency,
|
||||
deal_id: int = Path(alias="dealId"),
|
||||
product_id: int = Path(alias="productId"),
|
||||
):
|
||||
return await DealProductService(session).delete(deal_id, product_id)
|
||||
|
||||
|
||||
@router.post(
|
||||
"/add-services-kit",
|
||||
response_model=DealProductAddKitResponse,
|
||||
operation_id="add_kit_to_deal_product",
|
||||
)
|
||||
async def add_kit_to_deal_product(
|
||||
session: SessionDependency,
|
||||
request: DealProductAddKitRequest,
|
||||
):
|
||||
return await DealProductService(session).add_services_kit(request)
|
||||
|
||||
|
||||
# endregion
|
||||
|
||||
|
||||
# region DealProductService
|
||||
|
||||
|
||||
@router.post(
|
||||
"/service",
|
||||
response_model=CreateProductServiceResponse,
|
||||
operation_id="create_deal_product_service",
|
||||
)
|
||||
async def create_deal_product_service(
|
||||
session: SessionDependency,
|
||||
request: CreateProductServiceRequest,
|
||||
):
|
||||
return await ProductServiceService(session).create(request)
|
||||
|
||||
|
||||
@router.patch(
|
||||
"/{dealId}/product/{productId}/service/{serviceId}",
|
||||
response_model=UpdateProductServiceResponse,
|
||||
operation_id="update_deal_product_service",
|
||||
)
|
||||
async def update_deal_product_service(
|
||||
session: SessionDependency,
|
||||
request: UpdateProductServiceRequest,
|
||||
deal_id: int = Path(alias="dealId"),
|
||||
product_id: int = Path(alias="productId"),
|
||||
service_id: int = Path(alias="serviceId"),
|
||||
):
|
||||
return await ProductServiceService(session).update(
|
||||
deal_id, product_id, service_id, request
|
||||
)
|
||||
|
||||
|
||||
@router.delete(
|
||||
"/{dealId}/product/{productId}/service/{serviceId}",
|
||||
response_model=DeleteProductServiceResponse,
|
||||
operation_id="delete_deal_product_service",
|
||||
)
|
||||
async def delete_deal_product_service(
|
||||
session: SessionDependency,
|
||||
deal_id: int = Path(alias="dealId"),
|
||||
product_id: int = Path(alias="productId"),
|
||||
service_id: int = Path(alias="serviceId"),
|
||||
):
|
||||
return await ProductServiceService(session).delete(deal_id, product_id, service_id)
|
||||
|
||||
|
||||
@router.post(
|
||||
"/services/duplicate",
|
||||
response_model=ProductServicesDuplicateResponse,
|
||||
operation_id="duplicate_product_services",
|
||||
)
|
||||
async def copy_product_services(
|
||||
session: SessionDependency,
|
||||
request: ProductServicesDuplicateRequest,
|
||||
):
|
||||
return await ProductServiceService(session).duplicate_product_services(request)
|
||||
|
||||
|
||||
# endregion
|
||||
58
modules/fulfillment_base/routers/deal_service.py
Normal file
58
modules/fulfillment_base/routers/deal_service.py
Normal file
@ -0,0 +1,58 @@
|
||||
from fastapi import APIRouter, Path
|
||||
|
||||
from backend.dependecies import SessionDependency
|
||||
from modules.fulfillment_base.schemas.deal_service import *
|
||||
from modules.fulfillment_base.services import DealServiceService
|
||||
|
||||
router = APIRouter(tags=["deal-service"])
|
||||
|
||||
|
||||
@router.get(
|
||||
"/{dealId}",
|
||||
response_model=GetDealServicesResponse,
|
||||
operation_id="get_deal_services",
|
||||
)
|
||||
async def get_deal_services(
|
||||
session: SessionDependency,
|
||||
deal_id: int = Path(alias="dealId"),
|
||||
):
|
||||
return await DealServiceService(session).get_all(deal_id)
|
||||
|
||||
|
||||
@router.post(
|
||||
"/",
|
||||
response_model=CreateDealServiceResponse,
|
||||
operation_id="create_deal_service",
|
||||
)
|
||||
async def create_deal_service(
|
||||
session: SessionDependency,
|
||||
request: CreateDealServiceRequest,
|
||||
):
|
||||
return await DealServiceService(session).create(request)
|
||||
|
||||
|
||||
@router.patch(
|
||||
"/{dealId}/service/{serviceId}",
|
||||
response_model=UpdateDealServiceResponse,
|
||||
operation_id="update_deal_service",
|
||||
)
|
||||
async def update_deal_service(
|
||||
session: SessionDependency,
|
||||
request: UpdateDealServiceRequest,
|
||||
deal_id: int = Path(alias="dealId"),
|
||||
service_id: int = Path(alias="serviceId"),
|
||||
):
|
||||
return await DealServiceService(session).update(deal_id, service_id, request)
|
||||
|
||||
|
||||
@router.delete(
|
||||
"/{dealId}/service/{serviceId}",
|
||||
response_model=DeleteDealServiceResponse,
|
||||
operation_id="delete_deal_service",
|
||||
)
|
||||
async def delete_deal_service(
|
||||
session: SessionDependency,
|
||||
deal_id: int = Path(alias="dealId"),
|
||||
service_id: int = Path(alias="serviceId"),
|
||||
):
|
||||
return await DealServiceService(session).delete(deal_id, service_id)
|
||||
57
modules/fulfillment_base/routers/product.py
Normal file
57
modules/fulfillment_base/routers/product.py
Normal file
@ -0,0 +1,57 @@
|
||||
from fastapi import APIRouter, Path, Query
|
||||
|
||||
from backend.dependecies import SessionDependency, PaginationDependency
|
||||
from modules.fulfillment_base.schemas.product import *
|
||||
from modules.fulfillment_base.services import ProductService
|
||||
|
||||
router = APIRouter(tags=["product"])
|
||||
|
||||
|
||||
@router.get(
|
||||
"/",
|
||||
response_model=GetProductsResponse,
|
||||
operation_id="get_products",
|
||||
)
|
||||
async def get_products(
|
||||
session: SessionDependency,
|
||||
pagination: PaginationDependency,
|
||||
search_input: Optional[str] = Query(alias="searchInput", default=None),
|
||||
):
|
||||
return await ProductService(session).get_all(search_input, pagination)
|
||||
|
||||
|
||||
@router.post(
|
||||
"/",
|
||||
response_model=CreateProductResponse,
|
||||
operation_id="create_product",
|
||||
)
|
||||
async def create_product(
|
||||
session: SessionDependency,
|
||||
request: CreateProductRequest,
|
||||
):
|
||||
return await ProductService(session).create(request)
|
||||
|
||||
|
||||
@router.patch(
|
||||
"/{pk}",
|
||||
response_model=UpdateProductResponse,
|
||||
operation_id="update_product",
|
||||
)
|
||||
async def update_product(
|
||||
session: SessionDependency,
|
||||
request: UpdateProductRequest,
|
||||
pk: int = Path(),
|
||||
):
|
||||
return await ProductService(session).update(pk, request)
|
||||
|
||||
|
||||
@router.delete(
|
||||
"/{pk}",
|
||||
response_model=DeleteProductResponse,
|
||||
operation_id="delete_product",
|
||||
)
|
||||
async def delete_product(
|
||||
session: SessionDependency,
|
||||
pk: int = Path(),
|
||||
):
|
||||
return await ProductService(session).delete(pk)
|
||||
55
modules/fulfillment_base/routers/service.py
Normal file
55
modules/fulfillment_base/routers/service.py
Normal file
@ -0,0 +1,55 @@
|
||||
from fastapi import APIRouter, Path
|
||||
|
||||
from backend.dependecies import SessionDependency
|
||||
from modules.fulfillment_base.schemas.service import *
|
||||
from modules.fulfillment_base.services import ServiceModelService
|
||||
|
||||
router = APIRouter(tags=["service"])
|
||||
|
||||
|
||||
@router.get(
|
||||
"/",
|
||||
response_model=GetServicesResponse,
|
||||
operation_id="get_services",
|
||||
)
|
||||
async def get_services(
|
||||
session: SessionDependency,
|
||||
):
|
||||
return await ServiceModelService(session).get_all()
|
||||
|
||||
|
||||
@router.post(
|
||||
"/",
|
||||
response_model=CreateServiceResponse,
|
||||
operation_id="create_service",
|
||||
)
|
||||
async def create_service(
|
||||
session: SessionDependency,
|
||||
request: CreateServiceRequest,
|
||||
):
|
||||
return await ServiceModelService(session).create(request)
|
||||
|
||||
|
||||
@router.patch(
|
||||
"/{pk}",
|
||||
response_model=UpdateServiceResponse,
|
||||
operation_id="update_service",
|
||||
)
|
||||
async def update_service(
|
||||
session: SessionDependency,
|
||||
request: UpdateServiceRequest,
|
||||
pk: int = Path(),
|
||||
):
|
||||
return await ServiceModelService(session).update(pk, request)
|
||||
|
||||
|
||||
@router.delete(
|
||||
"/{pk}",
|
||||
response_model=DeleteServiceResponse,
|
||||
operation_id="delete_service",
|
||||
)
|
||||
async def delete_service(
|
||||
session: SessionDependency,
|
||||
pk: int = Path(),
|
||||
):
|
||||
return await ServiceModelService(session).delete(pk)
|
||||
55
modules/fulfillment_base/routers/services_kit.py
Normal file
55
modules/fulfillment_base/routers/services_kit.py
Normal file
@ -0,0 +1,55 @@
|
||||
from fastapi import APIRouter, Path
|
||||
|
||||
from backend.dependecies import SessionDependency
|
||||
from modules.fulfillment_base.schemas.services_kit import *
|
||||
from modules.fulfillment_base.services import ServicesKitService
|
||||
|
||||
router = APIRouter(tags=["services-kit"])
|
||||
|
||||
|
||||
@router.get(
|
||||
"/",
|
||||
response_model=GetServicesKitResponse,
|
||||
operation_id="get_services_kits",
|
||||
)
|
||||
async def get_services_kits(
|
||||
session: SessionDependency,
|
||||
):
|
||||
return await ServicesKitService(session).get_all()
|
||||
|
||||
|
||||
@router.post(
|
||||
"/",
|
||||
response_model=CreateServicesKitResponse,
|
||||
operation_id="create_services_kit",
|
||||
)
|
||||
async def create_services_kit(
|
||||
session: SessionDependency,
|
||||
request: CreateServicesKitRequest,
|
||||
):
|
||||
return await ServicesKitService(session).create(request)
|
||||
|
||||
|
||||
@router.patch(
|
||||
"/{pk}",
|
||||
response_model=UpdateServicesKitResponse,
|
||||
operation_id="update_services_kit",
|
||||
)
|
||||
async def update_services_kit(
|
||||
session: SessionDependency,
|
||||
request: UpdateServicesKitRequest,
|
||||
pk: int = Path(),
|
||||
):
|
||||
return await ServicesKitService(session).update(pk, request)
|
||||
|
||||
|
||||
@router.delete(
|
||||
"/{pk}",
|
||||
response_model=DeleteServicesKitResponse,
|
||||
operation_id="delete_services_kit",
|
||||
)
|
||||
async def delete_services_kit(
|
||||
session: SessionDependency,
|
||||
pk: int = Path(),
|
||||
):
|
||||
return await ServicesKitService(session).delete(pk)
|
||||
Reference in New Issue
Block a user