5b7b41aa50
- Flask app with SQLAlchemy, Flask-Login, Flask-Mail - Admin/owner roles, vessel management, charters, work orders - Background launcher (Iniciar.vbs) runs server without terminal window - Root redirect fixed: / → /login - debug=False, use_reloader=False for pythonw.exe compatibility Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
30 lines
1.4 KiB
Python
30 lines
1.4 KiB
Python
|
|
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')
|