feat:add bill delay
This commit is contained in:
@@ -4,3 +4,4 @@ class TaskEnv:
|
||||
CLN_AUDIT_PRICE = 'audit_price'
|
||||
CLN_AUDIT_FACTOR = 'audit_factor'
|
||||
CLN_AUDIT_PROGRAM = 'audit_program'
|
||||
CLN_BILL_DELAY = 'bill_delay'
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
import uuid
|
||||
from datetime import datetime
|
||||
from typing import Optional
|
||||
|
||||
import pydantic
|
||||
from pydantic import Field
|
||||
|
||||
from core.models.base import BaseModel
|
||||
|
||||
class Financial(pydantic.BaseModel):
|
||||
status:Optional[int] = Field(description="صورت وضعیت")
|
||||
prepayment:Optional[int] = Field(description=" پیش پرداخت")
|
||||
modification:Optional[int] = Field(description="تعدیل")
|
||||
good_job:Optional[int] = Field(description="حسن انجام کار")
|
||||
|
||||
class ForceMajor(pydantic.BaseModel):
|
||||
force_event:Optional[int] = Field(description="حوادث قهری")
|
||||
material:Optional[int] = Field(description="محدودیت ورود مصالح")
|
||||
rules:Optional[int] = Field(description="وضع قوانین جدید")
|
||||
define_indicators:Optional[int] = Field(description="تاخیرات در اعالم شاخص های قطعی")
|
||||
|
||||
class Technical(pydantic.BaseModel):
|
||||
map_technical:Optional[int] = Field(description="تغییر نقشه و مشخصات فنی")
|
||||
permit:Optional[int] = Field(description="تاخیرات در تحویل کارگاه معارض زمین یا اخذ پروانه")
|
||||
purchase:Optional[int] = Field(description="تاخیر در خرید کارفرمایی")
|
||||
suspense:Optional[int] = Field(description="تعلیق پیمان ماده 49")
|
||||
|
||||
class BillDelayModel(BaseModel):
|
||||
id: Optional[uuid.UUID] = Field(alias='_id')
|
||||
project_id: uuid.UUID = Field(description='کد شناسایی پروژ')
|
||||
financial:Optional[Financial] = Field(description='مسائل مالی')
|
||||
force_major:Optional[ForceMajor] = Field(description='فورس ماژور')
|
||||
technical:Optional[Technical] = Field(description='فنی و قراردادی')
|
||||
extra_new_work:Optional[int] = Field(description='کارهای اضافی جدید')
|
||||
other:Optional[int] = Field(description='سایر')
|
||||
illegal:Optional[int] = Field(description='غیر مجاز')
|
||||
date_present_bill = Optional[datetime] = Field(description='تاریخ ارائه لایحه')
|
||||
date_consider_bill = Optional[datetime] = Field(description='تاریخ رسیدگی لایحه')
|
||||
date_submission_bill = Optional[datetime] = Field(description='تاریخ ابلاغ لایحه')
|
||||
description: Optional[str] = Field(description='توضیحات')
|
||||
end_at = Optional[datetime] = Field(description='تاریخ خاتمه پیمان')
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
from app.config import TaskEnv
|
||||
from app.models.bill_delay import BillDelayModel
|
||||
from core.repositories.base import BaseRepository
|
||||
|
||||
|
||||
class BillDelayRepository(BaseRepository):
|
||||
def __init__(self):
|
||||
super().__init__(collection=TaskEnv.CLN_BILL_DELAY, model=BillDelayModel)
|
||||
@@ -6,3 +6,4 @@ from .parliament_audit import *
|
||||
from .price_audit import *
|
||||
from .factor_audit import *
|
||||
from .program_audit import *
|
||||
from .bill_delay import *
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
from uuid import UUID
|
||||
|
||||
from fastapi import Body
|
||||
|
||||
from app.models.bill_delay import BillDelayModel
|
||||
from app.repositories.bill_delay import BillDelayRepository
|
||||
from core.app import app
|
||||
from core.utils.router import generate_router, shrink
|
||||
from core.utils.table_engine import TableEngineExport, TableEngineRequestType
|
||||
|
||||
ThisModel = BillDelayModel
|
||||
router_base_url = 'delay'
|
||||
_tag_base = [router_base_url]
|
||||
router = generate_router(router_base_url, auth_dependencies=False, version='v2')
|
||||
repo = BillDelayRepository()
|
||||
|
||||
@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)
|
||||
Reference in New Issue
Block a user