diff --git a/app/config/__init__.py b/app/config/__init__.py index 267b3c5..9855258 100644 --- a/app/config/__init__.py +++ b/app/config/__init__.py @@ -6,7 +6,7 @@ class TaskEnv: CLN_AUDIT_PROGRAM = 'audit_program' CLN_BILL_DELAY = 'bill_delay' CLN_CONTRACT = 'contract' - # CLN_BILL = 'bill' + CLN_BILL = 'bill' CLN_MONITOR_PYSICAL = 'monitor_physical' CLN_MONITOR_RIAL = 'monitor_rial' CLN_MONITOR_SECONDARY = 'monitor_secondary' diff --git a/app/models/bill.py b/app/models/bill.py new file mode 100644 index 0000000..5658cdc --- /dev/null +++ b/app/models/bill.py @@ -0,0 +1,21 @@ +import datetime +import uuid +from typing import Optional, List + +from pydantic import Field + +from core.models.base import BaseModel + + +class BillModel(BaseModel): + project_id:Optional[uuid.UUID] = Field(description='کد پروژه در این فیلد قرار می کیرد') + contract_id:Optional[uuid.UUID] = Field(description='کد قرارداد در این فیلد قرار می کیرد') + number:Optional[str] = Field(description='شماره صورتحساب') + title:Optional[str] = Field(description='عنوان صورت حساب') + amount:Optional[int] = Field(description='مبلغ کارکرد صورتحساب') + bill_amount:Optional[int] = Field(description='مبلغ تجمعی صورتحساب') + verify_amount:Optional[int] = Field(description=' مبلغ تائید شده') + date_at:Optional[datetime.datetime] = Field(description='تاریخ ارسال') + collection: Optional[List[str]] = Field(description=""" + 'ژئوتکنیک','طرح توجیحی','طراحی','نظارت کارگاهی','نظارت عالیه' + """) diff --git a/app/repositories/bill.py b/app/repositories/bill.py new file mode 100644 index 0000000..9f6ead0 --- /dev/null +++ b/app/repositories/bill.py @@ -0,0 +1,8 @@ +from app.config import TaskEnv +from app.models.bill import BillModel +from core.repositories.base import BaseRepository + + +class BillRepository(BaseRepository): + def __init__(self): + super().__init__(collection=TaskEnv.CLN_BILL, model=BillModel) diff --git a/app/urls/__init__.py b/app/urls/__init__.py index 0c9edaa..97c8cc5 100644 --- a/app/urls/__init__.py +++ b/app/urls/__init__.py @@ -8,7 +8,7 @@ from .factor_audit import * from .program_audit import * from .bill_delay import * from .contract import * -# from .bill import * +from .bill import * from .monitor_physical import * from .monitor_rial import * from .monitor_secondary import * diff --git a/app/urls/bill.py b/app/urls/bill.py new file mode 100644 index 0000000..fdde267 --- /dev/null +++ b/app/urls/bill.py @@ -0,0 +1,37 @@ +from uuid import UUID + +from fastapi import Body + +from app.models.bill import BillModel +from app.repositories.bill import BillRepository +from core.app import app +from core.utils.router import generate_router, shrink +from core.utils.table_engine import TableEngineExport, TableEngineRequestType + +ThisModel = BillModel +router_base_url = 'bill' +_tag_base = [router_base_url] +router = generate_router(router_base_url, auth_dependencies=False, version='v2') +repo = BillRepository() + +@router.post('/create', response_model=ThisModel, tags=_tag_base) +@shrink(repo.create) +def create(coding: ThisModel = Body(...)): + pass + +@router.put('/{_id}', response_model=ThisModel, tags=_tag_base) +@shrink(repo.update) +def update(_id: UUID, coding: ThisModel = Body(...)): + pass + +@router.get('/{_id}', response_model=ThisModel, tags=_tag_base) +@shrink(repo.get) +def get(_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) \ No newline at end of file