import uuid from fastapi import Body from app.models.report import StatusReport, ReportCountry, DonutList, DelayDonutDetail, PhysicalMonth 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.post('/donut/delay/detail', tags=_tag_base) @shrink(repo.delay_donut_detail) def delay_donut_detail(_inp: DelayDonutDetail = Body(...)): pass #نمودار پیشرفت فعالیت ها @router.get('/progress_activity/{project_id}', tags=_tag_base) @shrink(repo.progress_activity) def progress_activity(project_id:uuid.UUID): pass # درصد انحراف و برنامه زمان بندی @router.get('/deviation', tags=_tag_base) @shrink(repo.categorize_deviation) def categorize_deviation(): pass # درصد افزایش زمان پروژه های خاتمه یافته @router.get('/donut/add/time', tags=_tag_base) @shrink(repo.sum_add_time_end_project) def sum_add_time_end_project(): pass @router.get('/donut/delay/all', tags=_tag_base) @shrink(repo.delay_donut_all) def delay_donut_all(): 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 = Body(...)): pass #نمودار تاخیرات بر اساس پروژه انتخاب شده @router.get('/donut/delay/project/{project_id}', tags=_tag_base) @shrink(repo.delay_donut) def delay_donut(project_id:uuid.UUID): pass #درصد میانگین افزایش هزینه پروژه های خاتمه یافته @router.get('/add_cost', tags=_tag_base) @shrink(repo.add_cost) def add_cost(): pass # تفکیک درصد پیشرفت ماهیانه پروژه ها @router.get('/progress_phisical', tags=_tag_base) @shrink(repo.progress_report) def progress_report(): pass # تفکیک درصد پیشرفت میانگین ماهیانه پروژه ها @router.get('/progress_phisica/avg', tags=_tag_base) @shrink(repo.progress_avg_report) def progress_avg_report(): pass # میانگین پیشرفت ماهیانه پروژه ها نمودار میله ای-بدون وزن @router.post('/progress_phisica/avg/month', tags=_tag_base) @shrink(repo.progress_month_report) def progress_month_report(_inp:PhysicalMonth = Body(...)): pass # وضعیت پروژه های در دست طراحی @router.get('/design_progress/status', tags=_tag_base) @shrink(repo.design_progress_status) def design_progress_status(): pass @router.get('/design_progress/status/state', tags=_tag_base) @shrink(repo.design_progress_status_state) def design_progress_status_state(): pass @router.get('/design_progress/status/progress', tags=_tag_base) @shrink(repo.design_progress_status_progress) def design_progress_status_progress(): pass # وضعیت دارا بودن موافقت نامه @router.get('/status_agreement/donut', tags=_tag_base) @shrink(repo.status_agreement) def status_agreement(): pass #روند وضعیت موافقت نامه ها @router.get('/status_agreement/progress', tags=_tag_base) @shrink(repo.status_agreement_progress) def status_agreement_progress(): pass app.include_router(router)