From 613a1f2cfee4f5ffe57bb6663a61d2ad1d8366ac Mon Sep 17 00:00:00 2001 From: shahzeydyfah Date: Fri, 22 Mar 2024 12:08:44 +0330 Subject: [PATCH] feat:add parliament audit --- app/config/__init__.py | 1 + app/models/parliament_audit.py | 24 ++++++++++++++++++++ app/repositories/parliament_audit.py | 8 +++++++ app/urls/parliament_audit.py | 34 ++++++++++++++++++++++++++++ 4 files changed, 67 insertions(+) create mode 100644 app/models/parliament_audit.py create mode 100644 app/repositories/parliament_audit.py create mode 100644 app/urls/parliament_audit.py diff --git a/app/config/__init__.py b/app/config/__init__.py index 78f49ef..0ee2922 100644 --- a/app/config/__init__.py +++ b/app/config/__init__.py @@ -1,2 +1,3 @@ class TaskEnv: CLN_AUDIT_STATUS = 'audit_status' + CLN_AUDIT_PARLIAMENT = 'audit_parliament' diff --git a/app/models/parliament_audit.py b/app/models/parliament_audit.py new file mode 100644 index 0000000..aecd579 --- /dev/null +++ b/app/models/parliament_audit.py @@ -0,0 +1,24 @@ +import uuid +from typing import Optional, Literal, List + +from pydantic import Field + +from core.models.base import BaseModel + + +class ParliamentModel(BaseModel): + id: Optional[uuid.UUID] = Field(alias='_id') + project_id: uuid.UUID = Field(description='کد شناسایی پروژ') + number: Optional[int | str] = Field(description="شماره صورت مجلس") + description:Optional[str] = Field(description='موضوع صورت مجلس') + count_row:Optional[int] = Field(description='تعداد ردیف صورت مجلس') + field:Optional[List]=Field(description=""" + 'electrical', + 'mechanic', + 'building', + 'other' + """) + location:Optional[str] = Field(description='موقعیت') + + + diff --git a/app/repositories/parliament_audit.py b/app/repositories/parliament_audit.py new file mode 100644 index 0000000..3806003 --- /dev/null +++ b/app/repositories/parliament_audit.py @@ -0,0 +1,8 @@ +from app.config import TaskEnv +from app.models.parliament_audit import ParliamentModel +from core.repositories.base import BaseRepository + + +class ParliamentRepository(BaseRepository): + def __init__(self): + super().__init__(collection=TaskEnv.CLN_AUDIT_PARLIAMENT,model=ParliamentModel) \ No newline at end of file diff --git a/app/urls/parliament_audit.py b/app/urls/parliament_audit.py new file mode 100644 index 0000000..2193ff6 --- /dev/null +++ b/app/urls/parliament_audit.py @@ -0,0 +1,34 @@ +from uuid import UUID + +from fastapi import Body + +from app.models.parliament_audit import ParliamentModel +from app.repositories.parliament_audit import ParliamentRepository +from core.utils.router import generate_router, shrink +from core.utils.table_engine import TableEngineExport, TableEngineRequestType + +ThisModel = ParliamentModel +router_base_url = 'parl' +_tag_base = [router_base_url] +router = generate_router(router_base_url, auth_dependencies=False, version='v2') +repo = ParliamentRepository() + +@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 \ No newline at end of file