< 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
95%
Covered lines: 19
Uncovered lines: 1
Coverable lines: 20
Total lines: 68
Line coverage: 95%
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%11100%
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")]
 3414    public string Ci { get; set; } = string.Empty;
 15
 16    [Required(ErrorMessage = "El primer nombre es requerido")]
 17    [MaxLength(100)]
 2818    public string PrimerNombre { get; set; } = string.Empty;
 19
 20    [MaxLength(100)]
 421    public string? SegundoNombre { get; set; }
 22
 23    [Required(ErrorMessage = "El primer apellido es requerido")]
 24    [MaxLength(100)]
 2825    public string PrimerApellido { get; set; } = string.Empty;
 26
 27    [MaxLength(100)]
 428    public string? SegundoApellido { get; set; }
 29
 30    [Required(ErrorMessage = "La fecha de nacimiento es requerida")]
 2631    public DateTime FechaNacimiento { get; set; }
 32
 33    [EmailAddress(ErrorMessage = "El email no es válido")]
 34    [MaxLength(150)]
 1035    public string? Email { get; set; }
 36
 37    [MaxLength(30)]
 438    public string? Telefono { get; set; }
 39
 40    [MaxLength(200)]
 441    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")]
 1648    public long GradoId { get; set; }
 49
 50    [Required(ErrorMessage = "La ley/régimen es requerida")]
 51    [MaxLength(50)]
 2152    public string Ley { get; set; } = string.Empty; // LEY_VIEJA, LEY_NUEVA
 53
 54    [Required(ErrorMessage = "La fecha de ingreso es requerida")]
 1855    public DateTime FechaIngreso { get; set; }
 56
 57    // Campos opcionales adicionales (internos)
 458    public long? EscalafonId { get; set; }
 459    public long? SituacionId { get; set; }
 460    public long? ProgramaId { get; set; }
 461    public long? UnidadId { get; set; }
 662    public long? CompaniaId { get; set; }
 463    public long? TipoMovimientoId { get; set; }
 64
 65    [MaxLength(500)]
 366    public string? Observaciones { get; set; }
 67}
 68