using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace Rs_system.Models; /// /// Salida de fondos registrada contra un cierre de diezmos. /// Incluye entregas al pastor, gastos administrativos, misiones, etc. /// [Table("diezmo_salidas")] public class DiezmoSalida { [Key] [Column("id")] public long Id { get; set; } [Column("diezmo_cierre_id")] public long DiezmoCierreId { get; set; } [Column("tipo_salida_id")] public long TipoSalidaId { get; set; } [Column("beneficiario_id")] public long? BeneficiarioId { get; set; } [Column("monto", TypeName = "numeric(12,2)")] [Required] public decimal Monto { get; set; } [Column("concepto")] [Required] [StringLength(300)] public string Concepto { get; set; } = string.Empty; /// Correlativo de recibo asignado al momento de generar el comprobante. [Column("numero_recibo")] [StringLength(30)] public string? NumeroRecibo { get; set; } [Column("fecha")] public DateTime Fecha { get; set; } = DateTime.UtcNow; // ── Auditoría ── [Column("creado_por")] [StringLength(100)] 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; [Column("eliminado")] public bool Eliminado { get; set; } = false; // ── Navegación ── [ForeignKey("DiezmoCierreId")] public virtual DiezmoCierre DiezmoCierre { get; set; } = null!; [ForeignKey("TipoSalidaId")] public virtual DiezmoTipoSalida TipoSalida { get; set; } = null!; [ForeignKey("BeneficiarioId")] public virtual DiezmoBeneficiario? Beneficiario { get; set; } }