from flask import Blueprint, render_template, abort, redirect, url_for from flask_login import login_required, current_user from app.models import Vessel, Company bp = Blueprint('admin', __name__, url_prefix='/admin') @bp.route('/dashboard') @login_required def dashboard(): if current_user.role != 'admin': return 'Acceso denegado', 403 return render_template('admin/dashboard.html', user=current_user) @bp.route('/companies') @login_required def companies(): from app.models import Company, User if not getattr(current_user, 'is_super_admin', False): return redirect(url_for('admin.dashboard')) mgmt_companies = Company.query.filter_by(type='management').all() return render_template('admin/companies.html', companies=mgmt_companies, user=current_user) @bp.route('/vessel//accounting') @login_required def vessel_accounting(vessel_id): if current_user.role != 'admin': return 'Acceso denegado', 403 vessel = Vessel.query.get_or_404(vessel_id) owner = Company.query.get(vessel.owner_company_id) plan_names = {1: 'Básico ($199/mes)', 2: 'Estándar ($399/mes)', 3: 'Mantenimiento ($299/mes)', 4: 'Plus ($599/mes)'} plan_costs = {1: 199, 2: 399, 3: 299, 4: 599} return render_template('admin/vessel_accounting.html', vessel=vessel, owner=owner, plan_name=plan_names.get(vessel.plan_id, 'Sin plan'), plan_cost=plan_costs.get(vessel.plan_id, 0), user=current_user )