93 lines
2.7 KiB
C#
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);
|
|
} |