Primera app funcional

This commit is contained in:
2026-05-22 18:27:43 -06:00
parent 43661dc2b0
commit 37e83a8226
30 changed files with 4053 additions and 291 deletions

73
lib/core/app_colors.dart Normal file
View File

@@ -0,0 +1,73 @@
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;
}
}
}