< Summary

Information
Class: FAU.Logica.DTOs.CreatePersonalRequest
Assembly: FAU.Logica
File(s): /home/runner/work/Sistema.Liquidacion.BE/Sistema.Liquidacion.BE/FAU.Logica/DTOs/CreatePersonalRequest.cs
Line coverage
90%
Covered lines: 18
Uncovered lines: 2
Coverable lines: 20
Total lines: 71
Line coverage: 90%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_Ci()100%11100%
get_PrimerNombre()100%11100%
get_SegundoNombre()100%11100%
get_PrimerApellido()100%11100%
get_SegundoApellido()100%11100%
get_FechaNacimiento()100%11100%
get_Email()100%11100%
get_Telefono()100%11100%
get_Direccion()100%11100%
get_CargoId()100%210%
get_GradoId()100%11100%
get_Ley()100%11100%
get_FechaIngreso()100%11100%
get_EscalafonId()100%11100%
get_SituacionId()100%11100%
get_ProgramaId()100%11100%
get_UnidadId()100%11100%
get_CompaniaId()100%11100%
get_TipoMovimientoId()100%210%
get_Observaciones()100%11100%

File(s)

/home/runner/work/Sistema.Liquidacion.BE/Sistema.Liquidacion.BE/FAU.Logica/DTOs/CreatePersonalRequest.cs

#LineLine coverage
 1using System.ComponentModel.DataAnnotations;
 2
 3namespace FAU.Logica.DTOs;
 4
 5/// <summary>
 6/// Request para crear alta de personal
 7/// Firma: { ci, nombre, apellido, fechaNacimiento, email, telefono, direccion, cargoId, gradoId, ley, fechaIngreso }
 8/// </summary>
 9public class CreatePersonalRequest
 10{
 11    [Required(ErrorMessage = "La cédula es requerida")]
 12    [MinLength(6, ErrorMessage = "La cédula debe tener al menos 6 dígitos")]
 13    [MaxLength(12, ErrorMessage = "La cédula no puede superar los 12 caracteres")]
 1614    public string Ci { get; set; } = string.Empty;
 15
 16    [Required(ErrorMessage = "El primer nombre es requerido")]
 17    [MaxLength(100)]
 1318    public string PrimerNombre { get; set; } = string.Empty;
 19
 20    [MaxLength(100)]
 121    public string? SegundoNombre { get; set; }
 22
 23    [Required(ErrorMessage = "El primer apellido es requerido")]
 24    [MaxLength(100)]
 1325    public string PrimerApellido { get; set; } = string.Empty;
 26
 27    [MaxLength(100)]
 128    public string? SegundoApellido { get; set; }
 29
 30    [Required(ErrorMessage = "La fecha de nacimiento es requerida")]
 831    public DateTime FechaNacimiento { get; set; }
 32
 33    [EmailAddress(ErrorMessage = "El email no es válido")]
 34    [MaxLength(150)]
 135    public string? Email { get; set; }
 36
 37    [MaxLength(30)]
 138    public string? Telefono { get; set; }
 39
 40    [MaxLength(200)]
 141    public string? Direccion { get; set; }
 42
 43    // Cargo será mapeado desde el Grado
 44    [Required(ErrorMessage = "El grado/cargo es requerido")]
 045    public long CargoId { get; set; } // Realmente es GradoId
 46
 47    [Required(ErrorMessage = "El grado es requerido")]
 648    public long GradoId { get; set; }
 49
 50    /// Opcional. Si se omite, el régimen se calcula automáticamente según MONTEPIO.PRG:
 51    /// - AV (Oficiales) con >= 15 años al 28/02/2019 → "14.157" (Ley Vieja)
 52    /// - Otros con >= 3 años al 28/02/2019 → "14.157" (Ley Vieja)
 53    /// - Ingreso posterior a 28/02/2019 → "19.695" (Ley Nueva)
 54    [MaxLength(50)]
 155    public string? Ley { get; set; }
 56
 57    [Required(ErrorMessage = "La fecha de ingreso es requerida")]
 1058    public DateTime FechaIngreso { get; set; }
 59
 60    // Campos opcionales adicionales (internos)
 461    public long? EscalafonId { get; set; }
 162    public long? SituacionId { get; set; }
 163    public long? ProgramaId { get; set; }
 164    public long? UnidadId { get; set; }
 165    public long? CompaniaId { get; set; }
 066    public long? TipoMovimientoId { get; set; }
 67
 68    [MaxLength(500)]
 169    public string? Observaciones { get; set; }
 70}
 71