using System.ComponentModel.DataAnnotations; namespace GestionIntegral.Api.Dtos.Contables { public class AjusteSaldoRequestDto { [Required(ErrorMessage = "El tipo de destino es obligatorio ('Distribuidores' o 'Canillas').")] [RegularExpression("^(Distribuidores|Canillas)$", ErrorMessage = "Destino debe ser 'Distribuidores' o 'Canillas'.")] public string Destino { get; set; } = string.Empty; [Required(ErrorMessage = "El ID del destinatario es obligatorio.")] [Range(1, int.MaxValue, ErrorMessage = "ID de Destinatario inválido.")] public int IdDestino { get; set; } [Required(ErrorMessage = "El ID de la empresa es obligatorio.")] [Range(1, int.MaxValue, ErrorMessage = "ID de Empresa inválido.")] public int IdEmpresa { get; set; } [Required(ErrorMessage = "El monto del ajuste es obligatorio.")] // Permitir montos negativos para disminuir deuda o positivos para aumentarla // No se usa Range aquí para permitir ambos signos. La validación de que no sea cero se puede hacer en el servicio. public decimal MontoAjuste { get; set; } [Required(ErrorMessage = "La justificación del ajuste es obligatoria.")] [StringLength(250, MinimumLength = 5, ErrorMessage = "La justificación debe tener entre 5 y 250 caracteres.")] public string Justificacion { get; set; } = string.Empty; } }