from typing import List from uuid import UUID from fastapi import Body from app.models.contract import ContractModel, AddendumModel, ExtensionModel from app.repositories.contract import ContractRepository from core.app import app from core.utils.router import generate_router, shrink from core.utils.table_engine import TableEngineExport, TableEngineRequestType ThisModel = ContractModel router_base_url = 'contract' _tag_base = [router_base_url] router = generate_router(router_base_url, auth_dependencies=False, version='v2') repo = ContractRepository() @router.post('/add/create/{contract_id}', response_model=ContractModel, tags=_tag_base) @shrink(repo.create_add) def create_add(contract_id: UUID,coding: AddendumModel = Body(...)): pass @router.put('/add/update/{contract_id}', response_model=ContractModel, tags=_tag_base) @shrink(repo.update_add) def update_add(contract_id: UUID,coding: AddendumModel = Body(...)): pass @router.post('/extension/create/{contract_id}', response_model=ContractModel, tags=_tag_base) @shrink(repo.create_extension) def create_extension(contract_id: UUID,coding: ExtensionModel = Body(...)): pass @router.put('/extension/create/{contract_id}', response_model=ContractModel, tags=_tag_base) @shrink(repo.update_extention) def update_extention(contract_id: UUID,coding: ExtensionModel = Body(...)): pass @router.post('/create', response_model=ContractModel, tags=_tag_base) @shrink(repo.create) def create(coding: ContractModel = Body(...)): pass @router.get('/list/{project_id}', response_model=List[ContractModel], tags=_tag_base) @shrink(repo.get_list) def get_list(project_id:UUID): pass @router.put('/{_id}', response_model=ContractModel, tags=_tag_base) @shrink(repo.update) def update(_id: UUID, coding: ContractModel = Body(...)): pass @router.get('/{_id}', response_model=ThisModel, tags=_tag_base) @shrink(repo.get) def get(_id: UUID): pass @router.delete('/{_id}', response_model=ThisModel, tags=_tag_base) @shrink(repo.delete) def delete(_id: UUID): pass @router.post('', response_model=TableEngineExport[ThisModel], tags=_tag_base) @shrink(repo.fetch) def fetch(body: TableEngineRequestType = Body(...)): pass app.include_router(router)