mine.py 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. from __future__ import annotations
  2. from datetime import datetime
  3. from pydantic import BaseModel, Field
  4. from app.schemas.common import ORMModel
  5. class MineBase(BaseModel):
  6. code: str = Field(max_length=64)
  7. name: str = Field(max_length=128)
  8. short_name: str = ""
  9. province: str = ""
  10. city: str = ""
  11. status: str = "active"
  12. production_capacity: float | None = None
  13. design_capacity: float | None = None
  14. ventilation_method: str = ""
  15. description: str = ""
  16. settings: dict = Field(default_factory=dict)
  17. is_default: bool = False
  18. class MineCreate(MineBase):
  19. pass
  20. class MineUpdate(BaseModel):
  21. name: str | None = None
  22. short_name: str | None = None
  23. province: str | None = None
  24. city: str | None = None
  25. status: str | None = None
  26. production_capacity: float | None = None
  27. design_capacity: float | None = None
  28. ventilation_method: str | None = None
  29. description: str | None = None
  30. settings: dict | None = None
  31. is_default: bool | None = None
  32. class MineRead(ORMModel):
  33. id: str
  34. code: str
  35. name: str
  36. short_name: str
  37. province: str
  38. city: str
  39. status: str
  40. production_capacity: float | None
  41. design_capacity: float | None
  42. ventilation_method: str
  43. description: str
  44. settings: dict
  45. is_default: bool
  46. created_at: datetime
  47. updated_at: datetime
  48. class MineAreaRead(ORMModel):
  49. id: str
  50. mine_id: str
  51. code: str
  52. name: str
  53. area_type: str
  54. depth: float | None
  55. status: str
  56. description: str
  57. class WorkFaceRead(ORMModel):
  58. id: str
  59. mine_id: str
  60. area_id: str | None
  61. code: str
  62. name: str
  63. face_type: str
  64. status: str
  65. planned_air_volume: float | None
  66. actual_air_volume: float | None
  67. gas_limit: float | None
  68. dust_limit: float | None
  69. location: dict
  70. class RoadwayRead(ORMModel):
  71. id: str
  72. mine_id: str
  73. area_id: str | None
  74. code: str
  75. name: str
  76. roadway_type: str
  77. start_node: str
  78. end_node: str
  79. length: float | None
  80. cross_section_area: float | None
  81. resistance: float | None
  82. airflow: float | None
  83. status: str
  84. properties: dict