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)