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.Work;

/// <summary>
/// 工序实体
/// </summary>
[Table(Name = DbConsts.TableNamePrefix + "process")]
public partial class ProcessEntity : EntityTenant
{
    /// <summary>
    /// 工序编号
    /// </summary>
    [Column(StringLength = 50)]
    public string ProcessCode { get; set; }

    /// <summary>
    /// 工序名称
    /// </summary>
    [Column(StringLength = 100)]
    public string ProcessName { get; set; }

    /// <summary>
    /// 工序分类
    /// </summary>
    [Column(StringLength = 50)]
    public string ProcessCategory { get; set; }

    /// <summary>
    /// 人员资质要求
    /// </summary>
    [Column(StringLength = 500)]
    public string QualificationRequirements { get; set; }
    
    /// <summary>
    /// 设备类型
    /// </summary>
    public string? EquipmentType { get; set; }
    
    /// <summary>
    /// 理论任务时长（小时）
    /// </summary>
    public decimal TheoreticalDuration { get; set; }

    /// <summary>
    /// 工序描述
    /// </summary>
    [Column(StringLength = 500)]
    public string Description { get; set; }
    
    /// <summary>
    /// 是否启用
    /// </summary>
    public bool IsEnabled { get; set; } = true;

    /// <summary>
    /// 工序优先级
    /// </summary>
    public int Priority { get; set; } = 1;

    /// <summary>
    /// 预估持续时间
    /// </summary>
    public TimeSpan? EstimatedDuration { get; set; }

    /// <summary>
    /// 设备类型ID
    /// </summary>
    public long? EquipmentTypeId { get; set; }
} 