diff --git a/app/models/register_status.py b/app/models/register_status.py new file mode 100644 index 0000000..c2dd941 --- /dev/null +++ b/app/models/register_status.py @@ -0,0 +1,49 @@ +import datetime +import uuid +from typing import Optional + +import pydantic +from pydantic import Field + +from core.models.base import BaseModel + +class AmountStatus(pydantic.BaseModel): + amount_contractor: Optional[int] = Field(description=" مبلغ دوره ادعایی پیمانکار | مبلغ تجمعی ادعایی پیمانکار") + amount_project_manager: Optional[int] = Field(description="مبلغ دوره تائید نظارت کارگاهی/مدیرطرح | مبلغ تجمعی تائید نظارت کارگاهی/مدیر طرح") + amount_cycle_supervisor: Optional[int] = Field(description="مبلغ دوره تائید نظارت عالیه | مبلغ تجمعی تائید نظارت عالیه") + building: Optional[int] = Field(description="ابنیه") + mechanic: Optional[int] = Field(description="مکانیک") + electrical: Optional[int] = Field(description="برق") + other: Optional[int] = Field(description="غیر از ابنیه، مکانیک، برق") + new_amount: Optional[int] = Field(description="فاکتوری | قیمت جدید") + workshop: Optional[int] = Field(description=" تجهیز کارگاه") + amount_verify_supervisor: Optional[int] = Field(description=" مبلغ تجمعی نظارت عالیه | مبلغ دوره نظارت عالیه") + + +class RegisterStatusModel(BaseModel): + id: Optional[uuid.UUID] = Field(alias='_id') + project_id: uuid.UUID = Field(description='کد شناسایی پروژ') + date_contractor:Optional[datetime.datetime] = Field(description="تاریخ ارسال پیمانکار") + date_receive_company:Optional[datetime.datetime] = Field(description=" تاریخ وصول به دبیرخانه شرکت") + date_receive_physical:Optional[datetime.datetime] = Field(description=" تاریخ وصول نسخه فیزیکی") + sts:Optional[int] = Field(description=""" + 1.کارکرد + 2.تعدیل + """) + start_at:Optional[datetime.datetime] = Field(description="تاریخ شروع دوره") + end_at:Optional[datetime.datetime] = Field(description="تاریخ پایان دوره") + cycle_day:Optional[int] = Field(description=" طول دوره به روز") + nature:Optional[int] = Field(description=""" + 1.موقت + 2.30درصد + 3.60درصد + 4.ماقبل قطعی + 5.قطعی + """) + number: Optional[float] = Field(description="شماره صورت وضعیت") + index: Optional[int] = Field(description=""" + 1.قطعی + 2. علی الحساب + """) + amount: Optional[AmountStatus] = Field(description="مبالغ") + related_to_number:Optional[int] = Field(description="شماره صورت وضعیت مرتبط") diff --git a/app/repositories/register_status.py b/app/repositories/register_status.py new file mode 100644 index 0000000..8d23d2d --- /dev/null +++ b/app/repositories/register_status.py @@ -0,0 +1,7 @@ +from app.models.register_status import RegisterStatusModel +from core.repositories.base import BaseRepository + + +class RegisterStatusRepository(BaseRepository[RegisterStatusModel]): + def __int__(self): + super().__init__(collection='register_status',model=RegisterStatusModel) diff --git a/app/urls/__init__.py b/app/urls/__init__.py index fd718b5..2a4efbe 100644 --- a/app/urls/__init__.py +++ b/app/urls/__init__.py @@ -1,3 +1,4 @@ from .project import * from .grand_project import * from .design_progress import * +from .register_status import * diff --git a/app/urls/register_status.py b/app/urls/register_status.py new file mode 100644 index 0000000..f972e42 --- /dev/null +++ b/app/urls/register_status.py @@ -0,0 +1,42 @@ +from uuid import UUID + +from fastapi import Body + +from app.models.register_status import RegisterStatusModel +from app.repositories.register_status import RegisterStatusRepository +from core.app import app +from core.utils.router import generate_router, shrink +from core.utils.table_engine import TableEngineExport, TableEngineRequestType + +ThisModel = RegisterStatusModel +router_base_url = 'status' +_tag_base = [router_base_url] +router = generate_router(router_base_url, auth_dependencies=False, version='v2') + + +repo = RegisterStatusRepository(collection='register_status') + +@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