using System;
using System.Collections.Generic;
using FreeSql.DataAnnotations;
using ZhonTai.Admin.Core.Entities;
using NPP.SmartSchedue.Api.Contracts.Core.Consts;

namespace NPP.SmartSchedue.Api.Contracts.Domain.Personnel;

/// <summary>
/// 人员实体
/// </summary>
[Table(Name = DbConsts.TableNamePrefix + "personnel")]
public partial class PersonnelEntity : EntityBase
{
    /// <summary>
    /// 人员编号
    /// </summary>
    [Column(StringLength = 50)]
    public string PersonnelCode { get; set; } = "";

    /// <summary>
    /// 人员姓名
    /// </summary>
    [Column(StringLength = 100)]
    public string PersonnelName { get; set; } = "";

    /// <summary>
    /// 部门ID
    /// </summary>
    public long? DepartmentId { get; set; }

    /// <summary>
    /// 部门名称
    /// </summary>
    [Column(StringLength = 100)]
    public string DepartmentName { get; set; } = "";

    /// <summary>
    /// 职位
    /// </summary>
    [Column(StringLength = 100)]
    public string Position { get; set; } = "";

    /// <summary>
    /// 是否激活
    /// </summary>
    public bool IsActive { get; set; } = true;

    /// <summary>
    /// 联系方式
    /// </summary>
    [Column(StringLength = 100)]
    public string Contact { get; set; } = "";

    /// <summary>
    /// 备注
    /// </summary>
    [Column(StringLength = 500)]
    public string Remarks { get; set; } = "";

    /// <summary>
    /// 人员资质列表
    /// </summary>
    [Navigate("PersonnelId")]
    public List<PersonnelQualificationEntity> PersonnelQualifications { get; set; } = new List<PersonnelQualificationEntity>();

    /// <summary>
    /// 人员工作限制列表
    /// </summary>
    [Navigate("PersonnelId")]
    public List<PersonnelWorkLimitEntity> WorkLimitations { get; set; } = new List<PersonnelWorkLimitEntity>();
}