import 'package:flutter/material.dart';

class AppColors {
  static const Color guindaPrimary  = Color(0xFF6D1E3A);
  static const Color guindaDark     = Color(0xFF4A1228);
  static const Color guindaLight    = Color(0xFF9B3D5C);
  static const Color dorado         = Color(0xFFC9A84C);
  static const Color blanco         = Color(0xFFFFFFFF);
  static const Color grisFondo      = Color(0xFFF5F5F5);
  static const Color grisTexto      = Color(0xFF757575);
  static const Color negroTexto     = Color(0xFF212121);
  static const Color verdeExito     = Color(0xFF2E7D32);
  static const Color rojoError      = Color(0xFFC62828);
  static const Color naranjaAlerta  = Color(0xFFE65100);
  static const Color azulInfo       = Color(0xFF1565C0);
  static const Color moradoConductor= Color(0xFF4A148C);
  static const Color verdeAdmin     = Color(0xFF1B5E20);
}

class AppRoles {
  static const String ciudadano     = 'CIUDADANO';
  static const String conductor     = 'CONDUCTOR';
  static const String administrador = 'ADMINISTRADOR';
}

class AppTurnos {
  static const String matutino  = 'MATUTINO';
  static const String vespertino= 'VESPERTINO';
  static const String nocturno  = 'NOCTURNO';
}

class AppDias {
  static const List<String> todos = [
    'LUNES','MARTES','MIERCOLES','JUEVES','VIERNES','SABADO','DOMINGO'
  ];
  static String label(String dia) {
    const m = {
      'LUNES':'Lunes','MARTES':'Martes','MIERCOLES':'Miércoles',
      'JUEVES':'Jueves','VIERNES':'Viernes','SABADO':'Sábado','DOMINGO':'Domingo',
    };
    return m[dia] ?? dia;
  }
}

class RouteStatus {
  static const String enRuta       = 'EN_RUTA';
  static const String cancelada    = 'CANCELADA';
  static const String retrasada    = 'RETRASADA';
  static const String fallaMecanica= 'FALLA_MECANICA';
  static const String finalizada   = 'FINALIZADA';

  static Color color(String status) {
    switch (status) {
      case enRuta:        return AppColors.verdeExito;
      case cancelada:     return AppColors.rojoError;
      case retrasada:     return AppColors.naranjaAlerta;
      case fallaMecanica: return Colors.red.shade900;
      case finalizada:    return AppColors.grisTexto;
      default:            return AppColors.grisTexto;
    }
  }

  static String label(String status) {
    switch (status) {
      case enRuta:        return '🚛 En Ruta';
      case cancelada:     return '❌ Cancelada';
      case retrasada:     return '⏱️ Retrasada';
      case fallaMecanica: return '🔧 Falla Mecánica';
      case finalizada:    return '✅ Finalizada';
      default:            return status;
    }
  }
}
