diff --git a/app/config/__init__.py b/app/config/__init__.py index b2f6765..01de642 100644 --- a/app/config/__init__.py +++ b/app/config/__init__.py @@ -3,3 +3,4 @@ class TaskEnv: CLN_AUDIT_PARLIAMENT = 'audit_parliament' CLN_AUDIT_PRICE = 'audit_price' CLN_AUDIT_FACTOR = 'audit_factor' + CLN_AUDIT_PROGRAM = 'audit_program' diff --git a/app/models/program_audit.py b/app/models/program_audit.py new file mode 100644 index 0000000..35cb935 --- /dev/null +++ b/app/models/program_audit.py @@ -0,0 +1,31 @@ +import uuid +from typing import Optional + +from pydantic import Field + +from core.models.base import BaseModel + + +class ProgramModel(BaseModel): + id: Optional[uuid.UUID] = Field(alias='_id') + project_id: uuid.UUID = Field(description='کد شناسایی پروژ') + number: Optional[str] = Field(description="شماره دستور کار") + description: Optional[str] = Field(description='موضوع') + count: Optional[int] = Field(description='تعداد') + field: Optional[str] = Field(description=""" + 'electrical', + 'mechanic', + 'building', + 'other' + """) + location: Optional[str] = Field(description='موقعیت') + reason: Optional[str] = Field(description='علت دستور کار') + add_price:Optional[int] = Field(description="مبلغ افزایش یافته") + sub_price:Optional[int] = Field(description="مبلغ کاهش یافته") + diff_price:Optional[int] = Field(description="مابه التفاوت:مبلغ افزایش منهای مبلغ کاهش می شود") + j:Optional[int] = Field(description="مجموع مبلغ افزایش یافته طی دستور کار های قبلی") + j_div_a:Optional[int] = Field(description="%A/J یک عدد درصدی") + y:Optional[int] = Field(description="مجموع مبلغ کاهش یافته طی دستور کار های قبلی ") + y_div_a:Optional[int] = Field(description="A/Y یک عدد درصدی") + w:Optional[int] = Field(description="مجموع مابه التفاوت طی دستور کار های قبلی") + w_div_a:Optional[int] = Field(description="A/W یک عدد درصدی") \ No newline at end of file diff --git a/app/repositories/program_audit.py b/app/repositories/program_audit.py new file mode 100644 index 0000000..240efd0 --- /dev/null +++ b/app/repositories/program_audit.py @@ -0,0 +1,8 @@ +from app.config import TaskEnv +from app.models.program_audit import ProgramModel +from core.repositories.base import BaseRepository + + +class ProgramRepository(BaseRepository): + def __init__(self): + super().__init__(collection=TaskEnv.CLN_AUDIT_PROGRAM,model=ProgramModel) \ No newline at end of file diff --git a/app/urls/__init__.py b/app/urls/__init__.py index bd7e72c..c39e1c2 100644 --- a/app/urls/__init__.py +++ b/app/urls/__init__.py @@ -5,3 +5,4 @@ from .register_status import * from .parliament_audit import * from .price_audit import * from .factor_audit import * +from .program_audit import * diff --git a/app/urls/program_audit.py b/app/urls/program_audit.py new file mode 100644 index 0000000..bbcbddb --- /dev/null +++ b/app/urls/program_audit.py @@ -0,0 +1,37 @@ +from uuid import UUID + +from fastapi import Body + +from app.models.program_audit import ProgramModel +from app.repositories.program_audit import ProgramRepository +from core.app import app +from core.utils.router import generate_router, shrink +from core.utils.table_engine import TableEngineExport, TableEngineRequestType + +ThisModel = ProgramModel +router_base_url = 'audit_program' +_tag_base = [router_base_url] +router = generate_router(router_base_url, auth_dependencies=False, version='v2') +repo = ProgramRepository() + +@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