46 lines
1.6 KiB
Python
46 lines
1.6 KiB
Python
from pydantic import BaseModel, Field
|
||
from typing import List, Optional
|
||
from enum import Enum
|
||
|
||
|
||
class RepairType(str, Enum):
|
||
"""Типы ремонтных работ"""
|
||
KR = "КР" # Капитальный ремонт
|
||
KP = "КП" # Капитальный ремонт
|
||
TR = "ТР" # Текущий ремонт
|
||
|
||
|
||
class SvodkaRepairCARequest(BaseModel):
|
||
"""Запрос на получение данных сводки ремонта СА"""
|
||
|
||
og_ids: Optional[List[str]] = Field(
|
||
default=None,
|
||
description="Список ID ОГ для фильтрации. Если не указан, возвращаются данные по всем ОГ",
|
||
example=["SNPZ", "KNPZ", "BASH"]
|
||
)
|
||
|
||
repair_types: Optional[List[RepairType]] = Field(
|
||
default=None,
|
||
description="Список типов ремонта для фильтрации. Если не указан, возвращаются все типы",
|
||
example=[RepairType.KR, RepairType.KP]
|
||
)
|
||
|
||
include_planned: bool = Field(
|
||
default=True,
|
||
description="Включать ли плановые данные"
|
||
)
|
||
|
||
include_factual: bool = Field(
|
||
default=True,
|
||
description="Включать ли фактические данные"
|
||
)
|
||
|
||
class Config:
|
||
json_schema_extra = {
|
||
"example": {
|
||
"og_ids": ["SNPZ", "KNPZ"],
|
||
"repair_types": ["КР", "КП"],
|
||
"include_planned": True,
|
||
"include_factual": True
|
||
}
|
||
} |