Files
RS_System/RS_system/Models/AsistenciaCulto.cs
2026-01-10 23:14:51 -06:00

93 lines
2.7 KiB
C#

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Rs_system.Models.Enums;
namespace Rs_system.Models;
[Table("asistencias_culto")]
public class AsistenciaCulto
{
[Key]
[Column("id")]
public long Id { get; set; }
[Column("fecha_hora_inicio")]
[Required]
public DateTime FechaHoraInicio { get; set; }
[Column("tipo_culto")]
[Required]
public TipoCulto TipoCulto { get; set; }
[Column("tipo_conteo")]
[Required]
public TipoConteo TipoConteo { get; set; }
// Campos para TipoConteo.Detallado
[Column("hermanas_misioneras")]
public int? HermanasMisioneras { get; set; }
[Column("hermanos_fraternidad")]
public int? HermanosFraternidad { get; set; }
[Column("embajadores_cristo")]
public int? EmbajadoresCristo { get; set; }
[Column("ninos")]
public int? Ninos { get; set; }
[Column("visitas")]
public int? Visitas { get; set; }
[Column("amigos")]
public int? Amigos { get; set; }
// Campos para TipoConteo.General
[Column("adultos_general")]
public int? AdultosGeneral { get; set; }
// Campo para TipoConteo.Total
[Column("total_manual")]
public int? TotalManual { get; set; }
// Campos de auditoría
[Column("observaciones")]
[StringLength(500)]
public string? Observaciones { get; set; }
[Column("creado_por")]
public string? CreadoPor { get; set; }
[Column("creado_en")]
public DateTime CreadoEn { get; set; } = DateTime.UtcNow;
[Column("actualizado_en")]
public DateTime ActualizadoEn { get; set; } = DateTime.UtcNow;
[NotMapped]
public int Total
{
get
{
return TipoConteo switch
{
TipoConteo.Detallado => (HermanasMisioneras ?? 0) +
(HermanosFraternidad ?? 0) +
(EmbajadoresCristo ?? 0) +
(Ninos ?? 0) +
(Visitas ?? 0) +
(Amigos ?? 0),
TipoConteo.General => (AdultosGeneral ?? 0) + (Ninos ?? 0),
TipoConteo.Total => TotalManual ?? 0,
_ => 0
};
}
}
[NotMapped]
public int TotalAdultosDetallado => (HermanasMisioneras ?? 0) +
(HermanosFraternidad ?? 0) +
(EmbajadoresCristo ?? 0) +
(Visitas ?? 0) +
(Amigos ?? 0);
}