import uuid from fastapi import Body from app.models.report import StatusReport, ReportCountry, DonutList, DelayDonutDetail from app.repositories.report import ReportRepository from core.app import app from core.utils.router import generate_router, shrink router_base_url = 'report' _tag_base = [router_base_url] router = generate_router(router_base_url, auth_dependencies=False, version='v2') repo = ReportRepository() #نقشه:وضعیت های طراحی @router.post('/design/sts', tags=_tag_base) @shrink(repo.project_status_design) def project_status_design(_inp: StatusReport): pass #نقشه:وضعیت های نظارت @router.post('/monitor/sts', tags=_tag_base) @shrink(repo.project_status_monitor) def project_status_monitor(_inp: StatusReport = Body(...)): pass @router.post('/country', tags=_tag_base) @shrink(repo.report_country) def report_country(_inp: ReportCountry = Body(...)): pass # نمایش تعداد پروژه ها در هر شهر بر اساس فیلترهای انتخاب شده @router.post('/exist_state', tags=_tag_base) @shrink(repo.exist_project_state) def exist_project_state(_inp: StatusReport = Body(...)): pass #نمودار تاخیرات بر اساس پروژه انتخاب شده @router.get('/donut/delay/{project_id}', tags=_tag_base) @shrink(repo.delay_donut) def delay_donut(project_id:uuid.UUID): pass #وقتی روی نمودار تاخیرات کلیک کرد جزئیات را بهش نمایش بده @router.post('/donut/delay/detail', tags=_tag_base) @shrink(repo.delay_donut_detail) def delay_donut_detail(_inp: DelayDonutDetail = Body(...)): pass @router.get('/donut/delay/percent', tags=_tag_base) @shrink(repo.sum_delay_percent) def sum_delay_percent(): pass @router.get('/donut/delay/{_select}', tags=_tag_base) @shrink(repo.list_delay_donut) def list_delay_donut(_select): pass @router.get('/donut/{_select}', tags=_tag_base) @shrink(repo.donut) def donut(_select:int): pass @router.post('/list-donut', tags=_tag_base) @shrink(repo.list_donut) def list_donut(_inp: DonutList): pass app.include_router(router)