You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
1.1 KiB
Python
26 lines
1.1 KiB
Python
from sqlalchemy import Column, DateTime, Float, Integer, String, ForeignKey, UUID
|
|
from sqlalchemy.orm import relationship
|
|
|
|
from src.database.core import Base
|
|
from src.models import DefaultMixin, IdentityMixin, TimeStampMixin
|
|
|
|
|
|
class OverhaulScope(Base, DefaultMixin):
|
|
__tablename__ = "oh_ms_overhaul"
|
|
start_date = Column(DateTime(timezone=True), nullable=False) # Made non-nullable to match model
|
|
end_date = Column(DateTime(timezone=True), nullable=True) # Already nullable
|
|
duration_oh = Column(Integer, nullable=True)
|
|
crew_number = Column(Integer, nullable=True, default=1)
|
|
status = Column(String, nullable=False, default="Upcoming")
|
|
maintenance_type_id = Column(
|
|
UUID(as_uuid=True), ForeignKey("oh_ms_maintenance_type.id"), nullable=False)
|
|
|
|
maintenance_type = relationship("MaintenanceType", lazy="selectin", backref="overhaul_scopes")
|
|
# activity_equipments = relationship("OverhaulActivity", lazy="selectin")
|
|
|
|
|
|
class MaintenanceType(Base, DefaultMixin):
|
|
__tablename__ = "oh_ms_maintenance_type"
|
|
code = Column(String, nullable=False, default="OH")
|
|
name = Column(String, nullable=False)
|