diff --git a/app/config/__init__.py b/app/config/__init__.py index 9c4b7a8..6cd6a7a 100644 --- a/app/config/__init__.py +++ b/app/config/__init__.py @@ -9,6 +9,7 @@ class TaskEnv: CLN_BILL = 'bill' CLN_MONITOR_PYSICAL = 'monitor_physical' CLN_MONITOR_RIAL = 'monitor_rial' + CLN_MONITOR_DESCRIPTION = 'monitor_description' CLN_MONITOR_SECONDARY = 'monitor_secondary' CLN_MONITOR_SUB_SECONDARY = 'monitor_sub_secondary' CLN_FINANCIAL_PRE_PAYMENT = 'financial_pre_payment' diff --git a/app/models/monitor_description_progress.py b/app/models/monitor_description_progress.py new file mode 100644 index 0000000..abb1492 --- /dev/null +++ b/app/models/monitor_description_progress.py @@ -0,0 +1,14 @@ +import uuid +import datetime +from typing import Optional + +from pydantic import Field + +from core.models.base import BaseModel + + +class DescriptionProgressModel(BaseModel): + id: Optional[uuid.UUID] = Field(alias='_id') + project_id:Optional[uuid.UUID] = Field(description="کد شناسایی پروژه در این فیلد قرار می گیرد") + date_at:Optional[datetime.datetime] = Field(description='تاریخ') + description:Optional[str] = Field(description='توضیحات') \ No newline at end of file diff --git a/app/repositories/monitor_description_progress.py b/app/repositories/monitor_description_progress.py new file mode 100644 index 0000000..aeab5f1 --- /dev/null +++ b/app/repositories/monitor_description_progress.py @@ -0,0 +1,8 @@ + +from app.config import TaskEnv +from app.models.monitor_description_progress import DescriptionProgressModel +from core.repositories.base import BaseRepository + +class DescriptionProgressRepository(BaseRepository): + def __init__(self): + super().__init__(collection=TaskEnv.CLN_MONITOR_DESCRIPTION, model=DescriptionProgressModel) diff --git a/app/urls/__init__.py b/app/urls/__init__.py index bcef09e..b06c13b 100644 --- a/app/urls/__init__.py +++ b/app/urls/__init__.py @@ -11,6 +11,7 @@ from .contract import * from .bill import * from .monitor_physical import * from .monitor_rial import * +from .monitor_description import * from .monitor_secondary import * from .financial_pre_payment import * from .financial_status import * diff --git a/app/urls/monitor_description.py b/app/urls/monitor_description.py new file mode 100644 index 0000000..1a9b8f9 --- /dev/null +++ b/app/urls/monitor_description.py @@ -0,0 +1,46 @@ +from uuid import UUID + +from fastapi import Body + +from app.models.monito_physical_progress import LastRecord +from app.models.monitor_description_progress import DescriptionProgressModel +from app.models.monitor_rial_progress import RialProgressModel +from app.repositories.monitor_description_progress import DescriptionProgressRepository +from app.repositories.monitor_rial_progress import RialProgressRepository +from core.app import app +from core.utils.router import generate_router, shrink +from core.utils.table_engine import TableEngineExport, TableEngineRequestType + +ThisModel = DescriptionProgressModel +router_base_url = 'monitor-description' +_tag_base = [router_base_url] +router = generate_router(router_base_url, auth_dependencies=False, version='v2') +repo = DescriptionProgressRepository() + +@router.post('/create', response_model=ThisModel, tags=_tag_base, description='توضیحات پیشرفت ریالی') +@shrink(repo.create) +def create(coding: ThisModel = Body(...)): + pass + + +@router.put('/{_id}', response_model=ThisModel, tags=_tag_base, description='توضیحات پیشرفت ریالی') +@shrink(repo.update) +def update(_id: UUID, coding: ThisModel = Body(...)): + pass + +@router.get('/{_id}', response_model=ThisModel, tags=_tag_base, description='توضیحات پیشرفت ریالی') +@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, description='توضیحات پیشرفت ریالی') +@shrink(repo.fetch) +def fetch(body: TableEngineRequestType = Body(...)): + pass + +app.include_router(router) \ No newline at end of file