class VesselSystem(db.Model): __tablename__ = 'vessel_systems' id = db.Column(db.Integer, primary_key=True) vessel_id = db.Column(db.Integer, db.ForeignKey('vessels.id')) system_type = db.Column(db.String(50), nullable=False) # propulsion, cubierta, puente, gobierno, generacion, electrico, etc component_name = db.Column(db.String(100), nullable=False) manufacturer = db.Column(db.String(100)) model = db.Column(db.String(100)) serial_number = db.Column(db.String(100)) installation_date = db.Column(db.Date) last_maintenance_date = db.Column(db.Date) status = db.Column(db.String(20), default='active') notes = db.Column(db.Text) vessel = db.relationship('Vessel', backref='systems') class MaintenanceLog(db.Model): __tablename__ = 'maintenance_logs' id = db.Column(db.Integer, primary_key=True) system_id = db.Column(db.Integer, db.ForeignKey('vessel_systems.id')) work_order_id = db.Column(db.Integer, db.ForeignKey('work_orders.id')) maintenance_date = db.Column(db.Date, nullable=False) maintenance_type = db.Column(db.String(50), nullable=False) # preventivo, correctivo, inspeccion description = db.Column(db.Text) cost = db.Column(db.Float) technician = db.Column(db.String(100)) next_maintenance_date = db.Column(db.Date) hours_accumulated = db.Column(db.Integer) system = db.relationship('VesselSystem', backref='maintenance_logs')