using Hotline.Share.Enums.Snapshot;
using SqlSugar;
using System.ComponentModel;
using XF.Domain.Repository;

namespace Hotline.Snapshot;

/// <summary>
/// 小程序公开工单
/// </summary>
[Description("小程序公开工单")]
public class SnapshotOrderPublish : FullStateEntity
{
    [SugarColumn(ColumnDescription = "关联工单编号")]
    public string OrderId { get; set; }

    /// <summary>
    /// 行业Id
    /// </summary>
    [SugarColumn(ColumnDescription = "行业Id")]
    public string IndustryId { get; set; }

    /// <summary>
    /// 行业名称
    /// </summary>
    [SugarColumn(ColumnDescription = "行业名称")]
    public string IndustryName { get; set; }

    /// <summary>
    /// 工单编码
    /// </summary>
    [SugarColumn(ColumnDescription = "工单编码")]
    public string No { get; set; }

    /// <summary>
    /// 整理标题
    /// </summary>
    [SugarColumn(ColumnDescription = "整理标题")]
    public string ArrangeTitle { get; set; }

    /// <summary>
    /// 整理内容
    /// </summary>
    [SugarColumn(ColumnDataType = "varchar(8000)")]
    public string ArrangeContent { get; set; }

    /// <summary>
    /// 整理结果
    /// </summary>
    [SugarColumn(ColumnDataType = "varchar(8000)")]
    public string ArrangeOpinion { get; set; }

    /// <summary>
    /// 受理时间
    /// </summary>
    [SugarColumn(ColumnDescription = "受理时间")]
    public DateTime HandleTime { get; set; }

    /// <summary>
    /// 整理地点
    /// </summary>
    [SugarColumn(ColumnDescription = "整理地点")]
    public string ArrangeAddress { get; set; }

    /// <summary>
    /// 状态
    /// </summary>
    [SugarColumn(ColumnDescription = "状态")]
    public EOrderSnapshotPublishStatus Status { get; set; }

    /// <summary>
    /// 审核时间
    /// </summary>
    [SugarColumn(ColumnDescription = "审核时间")]
    public DateTime? AuditTime { get; set; }

    /// <summary>
    /// 不通过原因
    /// </summary>
    [SugarColumn(ColumnDescription = "不通过原因")]
    public string? RefuseRemark { get; set; }

    /// <summary>
    /// 不通过审核时间
    /// </summary>
    [SugarColumn(ColumnDescription = "不通过审核时间")]
    public DateTime? RefuseAuditTime { get; set; }
}
