Files
alro65 5b7b41aa50 Initial commit: Fleet Management app with security hardening and background launcher
- 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>
2026-05-05 02:54:10 -04:00

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')