using MilitaryTrainingManagement.Models.Enums;

namespace MilitaryTrainingManagement.Models.Entities;

/// <summary>
/// 人员实体
/// </summary>
public class Personnel
{
    public int Id { get; set; }
    public string Name { get; set; } = string.Empty;
    public string? PhotoPath { get; set; }
    public string? Unit { get; set; } // 单位
    public string Position { get; set; } = string.Empty;
    public string Rank { get; set; } = string.Empty;
    public string Gender { get; set; } = string.Empty;
    public string? IdNumber { get; set; }
    public string? ProfessionalTitle { get; set; }
    public string? EducationLevel { get; set; }
    public int Age { get; set; }
    public decimal? Height { get; set; }
    public string? ContactInfo { get; set; }
    public string? Hometown { get; set; }
    public string? TrainingParticipation { get; set; }
    public string? Achievements { get; set; }
    public string? SupportingDocuments { get; set; }
    
    // 新增字段
    public string? Ethnicity { get; set; }
    public string? PoliticalStatus { get; set; }
    public string? BirthDate { get; set; }
    public string? EnlistmentDate { get; set; }
    public string? Specialty { get; set; }
    
    public int SubmittedByUnitId { get; set; }
    public OrganizationalUnit SubmittedByUnit { get; set; } = null!;
    public PersonnelLevel? ApprovedLevel { get; set; }
    public int? ApprovedByUnitId { get; set; }
    public OrganizationalUnit? ApprovedByUnit { get; set; }
    public PersonnelStatus Status { get; set; } = PersonnelStatus.Pending;
    public DateTime SubmittedAt { get; set; } = DateTime.UtcNow;
    public DateTime? ApprovedAt { get; set; }
    
    // 向上申报相关字段
    public int? PendingUpgradeByUnitId { get; set; } // 发起向上申报的单位ID
    public OrganizationalUnit? PendingUpgradeByUnit { get; set; }
}
