namespace RutasDBUS.Modelos.Importacion;

/// <summary>
/// Inicializa una nueva instancia de la clase FilaCalendarioCsv.
/// </summary>
public sealed record FilaCalendarioCsv(
    string Id,
    int Lunes,
    int Martes,
    int Miercoles,
    int Jueves,
    int Viernes,
    int Sabado,
    int Domingo,
    DateOnly FechaInicio,
    DateOnly FechaFin);

/// <summary>
/// Inicializa una nueva instancia de la clase FilaCalendarioExcepcionCsv.
/// </summary>
public sealed record FilaCalendarioExcepcionCsv(
    string Id,
    DateOnly FechaEx,
    int TipoExcepcion);

/// <summary>
/// Inicializa una nueva instancia de la clase FilaExpedicionCsv.
/// </summary>
public sealed record FilaExpedicionCsv(
    string Id,
    string IdRuta,
    string DirDestino,
    int Direccion,
    string CambioExp,
    string IdPatronExp,
    TimeOnly? HSalida,
    string IdCal);

/// <summary>
/// Inicializa una nueva instancia de la clase FilaOperadorCsv.
/// </summary>
public sealed record FilaOperadorCsv(
    string Id,
    string Nombre,
    string Telefono,
    string Url,
    string Descripcion);

/// <summary>
/// Inicializa una nueva instancia de la clase FilaParadaCsv.
/// </summary>
public sealed record FilaParadaCsv(
    int Id,
    string CodigoSms,
    string NombrePar,
    double LatitudYPar,
    double LongitudXPar,
    string LocalidadPar,
    string ZonaPar,
    string DescripcionPar,
    string UrlPar,
    string TipoPar,
    string EstacionPadre);

/// <summary>
/// Inicializa una nueva instancia de la clase FilaPatronCsv.
/// </summary>
public sealed record FilaPatronCsv(
    string Id,
    double PtoLatitudY,
    double PtoLongitudX,
    int PtoSecuencia,
    double DistanciaRecorrida);

/// <summary>
/// Inicializa una nueva instancia de la clase FilaRutaCsv.
/// </summary>
public sealed record FilaRutaCsv(
    string Id,
    string Abreviatura,
    string Nombre,
    string Descripcion,
    string TipoVehiculo,
    string Url,
    string Color);

/// <summary>
/// Inicializa una nueva instancia de la clase FilaTarifaCsv.
/// </summary>
public sealed record FilaTarifaCsv(
    string Id,
    string IdTarRu,
    string IdParadaOrigen,
    string IdParadaDestino,
    string IdZonaOrigen,
    string IdZonaDestino,
    decimal? Precio,
    string TipoPago,
    int? TiempoTransbordo,
    int? Transbordos);

/// <summary>
/// Inicializa una nueva instancia de la clase FilaTiempoParadaCsv.
/// </summary>
public sealed record FilaTiempoParadaCsv(
    string IdExp,
    TimeOnly? HoraLlegada,
    TimeOnly? HoraSalida,
    double DistanciaSiguienteParada,
    int IdTiempoPar,
    int SecPar,
    string TipoSubidaPar,
    string TipoBajadaPar,
    string NuevaDirDestinoPar);

/// <summary>
/// Inicializa una nueva instancia de la clase FilaTiempoRealCsv.
/// </summary>
public sealed record FilaTiempoRealCsv(
    string IdRu,
    string IdServicio,
    string IdTrans,
    double LatitudY,
    double LongitudX,
    string HoraEmision,
    string IdAntPar,
    string FechaHoraPaso,
    TimeOnly? HSalida,
    int? MinutosDeDiferencia,
    string Teorico);

/// <summary>
/// Inicializa una nueva instancia de la clase FilaTransbordoCsv.
/// </summary>
public sealed record FilaTransbordoCsv(
    string IdRuta1,
    string IdRuta2);

/// <summary>
/// Inicializa una nueva instancia de la clase FilaVehiculoCsv.
/// </summary>
public sealed record FilaVehiculoCsv(
    string Id,
    string IdTipo,
    string DescripcionTipo,
    int? CapacidadMaxima,
    int? Asientos,
    int? NumPuertas,
    int? AforoActual);
