📊 Descripción General
La entidad TramosHorario representa los diferentes tramos horarios configurados en el sistema RestMaster. Esta entidad permite gestionar los horarios de servicio, turnos y períodos de operación del restaurante.
🎯 Propósito de la Entidad
- Gestión de Horarios: Tramos horarios del restaurante
- Turnos de Servicio: Períodos de operación
- Configuración de Horarios: Horarios configurables
- Control de Operación: Períodos activos
- Reportes: Análisis por tramos horarios
💡 Ejemplo de Uso
// Crear tramos horarios
var tramoDesayuno = new TramosHorario
{
TramoHorario = "DESAYUNO",
HoraInicio = DateTime.Parse("07:00"),
HoraFinal = DateTime.Parse("11:00")
};
var tramoComida = new TramosHorario
{
TramoHorario = "COMIDA",
HoraInicio = DateTime.Parse("12:00"),
HoraFinal = DateTime.Parse("16:00")
};
var tramoCena = new TramosHorario
{
TramoHorario = "CENA",
HoraInicio = DateTime.Parse("19:00"),
HoraFinal = DateTime.Parse("23:00")
};
// Consultar todos los tramos horarios
var tramosHorarios = context.TramosHorarios
.OrderBy(th => th.HoraInicio)
.ToList();
// Buscar tramo horario por nombre
var tramoHorario = context.TramosHorarios
.FirstOrDefault(th => th.TramoHorario == "COMIDA");
// Obtener tramo horario actual
var horaActual = DateTime.Now.TimeOfDay;
var tramoActual = context.TramosHorarios
.FirstOrDefault(th =>
th.HoraInicio.TimeOfDay <= horaActual &&
th.HoraFinal.TimeOfDay >= horaActual);
// Consultar tramos horarios por rango de horas
var tramosRango = context.TramosHorarios
.Where(th => th.HoraInicio.Hour >= 12 && th.HoraFinal.Hour <= 18)
.ToList();
// Verificar si existe tramo horario
var existeTramo = context.TramosHorarios
.Any(th => th.TramoHorario == "DESAYUNO");
// Crear nuevo tramo horario
if (!existeTramo)
{
var nuevoTramo = new TramosHorario
{
TramoHorario = "DESAYUNO",
HoraInicio = DateTime.Parse("07:00"),
HoraFinal = DateTime.Parse("11:00")
};
context.TramosHorarios.Add(nuevoTramo);
context.SaveChanges();
}
// Calcular duración de tramo horario
var tramo = context.TramosHorarios
.FirstOrDefault(th => th.TramoHorario == "COMIDA");
if (tramo != null)
{
var duracion = tramo.HoraFinal - tramo.HoraInicio;
Console.WriteLine($"Duración del tramo: {duracion.Hours} horas");
}