using SqlSugar;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using XF.Domain.Repository;
using Hotline.Orders;
using Hotline.Share.Enums.Snapshot;

namespace Hotline.Snapshot;

/// <summary>
/// 网格员红包审核
/// 先生成审核, 再生成红包发放记录
/// </summary>
[Description("网格员红包审核")]
public class RedPackGuiderAudit : CreationSoftDeleteEntity
{
    /// <summary>
    /// 关联工单编号
    /// <inheritdoc cref="Order"/>表的Id字段
    /// </summary>    
    [SugarColumn(ColumnDescription = "关联工单编号")]
    public string OrderId { get; set; }

    /// <summary>
    /// 领取手机号码
    /// </summary>
    [SugarColumn(ColumnDescription = "领取红包手机号码")]
    public string? PhoneNumber { get; set; }

    /// <summary>
    /// 政法委审核状态
    /// </summary>
    [SugarColumn(ColumnDescription = "政法委审核状态")]
    public ERedPackAuditStatus LevelOneStatus { get; set; }

    /// <summary>
    /// 应急局审核状态
    /// </summary>
    [SugarColumn(ColumnDescription = "应急局审核状态")]
    public ERedPackAuditStatus? LevelTwoStatus { get; set; }

    /// <summary>
    /// 应急局审批时间
    /// </summary>
    [SugarColumn(ColumnDescription = "应急局审批时间")]
    public DateTime? LevelTwoAuditTime { get; set; }

    /// <summary>
    /// 应急局审批人
    /// </summary>
    [SugarColumn(ColumnDescription = "应急局审批人")]
    public string? LevelTwoAuditId { get; set; }

    /// <summary>
    /// 应急局审批人
    /// </summary>
    [SugarColumn(ColumnDescription = "应急局审批人")]
    public string? LevelTwoAuditName { get; set; }

    /// <summary>
    /// 应急局审批部门
    /// </summary>
    [SugarColumn(ColumnDescription = "应急局审批部门")]
    public string? LevelTwoAuditOrgId { get; set; }

    /// <summary>
    /// 应急局审批部门名称
    /// </summary>
    [SugarColumn(ColumnDescription = "应急局审批部门名称")]
    public string? LevelTwoAuditOrgName { get; set; }

    /// <summary>
    /// 应急局审批意见
    /// </summary>
    [SugarColumn(ColumnDescription = "应急局审批意见")]
    public string? LevelTwoAuditRemark { get; set; }

    /// <summary>
    /// 配置金额
    /// </summary>
    [SugarColumn(ColumnDescription = "配置金额")]
    public double ShouldAmount { get; set; }

    /// <summary>
    /// 审批金额
    /// </summary>
    [SugarColumn(ColumnDescription = "审批金额")]
    public double? ApprovedAmount { get; set; }

    /// <summary>
    /// 实发金额
    /// </summary>
    [SugarColumn(ColumnDescription = "实发金额")]
    public double? AcutalAmount { get; set; }

    /// <summary>
    /// 补充发放金额
    /// </summary>
    [SugarColumn(ColumnDescription = "补充发放金额")]
    public double? ReplenishAmount { get; set; }

    /// <summary>
    /// 补充发放时间
    /// </summary>
    [SugarColumn(ColumnDescription = "补充发放时间")]
    public DateTime? ReplenishTime { get; set; }

    /// <summary>
    /// 补充发放备注
    /// </summary>
    [SugarColumn(ColumnDescription = "补充发放备注")]
    public string? ReplenishRemark { get; set; }

    /// <summary>
    /// 补充发放类型
    /// </summary>
    [SugarColumn(ColumnDescription = "补充发放类型")]
    public string? ReplenishType { get; set; }

    /// <summary>
    /// 补充发放类型Id
    /// </summary>
    [SugarColumn(ColumnDescription = "补充发放类型Id")]
    public string? ReplenishTypeId { get; set; }

    /// <summary>
    /// 网格员奖励发放结果
    /// </summary>
    [SugarColumn(ColumnDescription = "网格员奖励发放结果")]
    public bool IsSend { get; set; }

    /// <summary>
    /// 网格员奖励发放备注
    /// </summary>
    [SugarColumn(ColumnDescription = "网格员奖励发放备注")]
    public string? SendRemarks { get; set; }

    /// <summary>
    /// 政法委审批时间
    /// </summary>
    [SugarColumn(ColumnDescription = "审批时间")]
    public DateTime? LevelOneAuditTime { get; set; }

    /// <summary>
    /// 政法委审批人
    /// </summary>
    [SugarColumn(ColumnDescription = "政法委审批人")]
    public string? LevelOneAuditId { get; set; }

    /// <summary>
    /// 政法委审批人
    /// </summary>
    [SugarColumn(ColumnDescription = "政法委审批人")]
    public string? LevelOneAuditName { get; set; }

    /// <summary>
    /// 政法委审批部门
    /// </summary>
    [SugarColumn(ColumnDescription = "政法委审批部门")]
    public string? LevelOneAuditOrgId { get; set; }

    /// <summary>
    /// 政法委审批部门名称
    /// </summary>
    [SugarColumn(ColumnDescription = "政法委审批部门名称")]
    public string? LevelOneAuditOrgName { get; set; }

    /// <summary>
    /// 政法委审批意见
    /// </summary>
    [SugarColumn(ColumnDescription = "政法委审批意见")]
    public string? LevelOneAuditRemark { get; set; }

    public string? Remark { get; set; }

    /// <summary>
    /// 是否已发放
    /// </summary>
    [SugarColumn(ColumnDescription = "是否已发放")]
    public bool? IsIssued { get; set; }

    /// <summary>
    /// 短信Id
    /// </summary>
    [SugarColumn(ColumnDescription = "短信Id")]
    public string? SMSTemplateId { get; set; }

    /// <summary>
    /// 是否发送短信
    /// </summary>
    [SugarColumn(ColumnDescription = "是否发送短信")]
    public bool? IsSendSMS { get; set; }
}
