using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TianQue.Sdk.Models;
public class AcceptInfo
{
    /// <summary>
    /// 唯一标识
    /// </summary>
    [Required]
    [MaxLength(100)]
    public string ReplyCode { get; set; }

    /// <summary>
    /// 区域Id
    /// </summary>
    //[Required]
    //[MaxLength(20)]
    //public long OrgId { get; set; }

    /// <summary>
    /// 经度
    /// </summary>
    [Required]
    public string Lon { get; set; }

    /// <summary>
    /// 维度
    /// </summary>
    [Required]
    public string Lat { get; set; }

    /// <summary>
    /// 部门编码
    /// </summary>
    //[MaxLength(20)]
    //public string DepartmentNo { get; set; }

    /// <summary>
    /// 诉求类型名称
    /// </summary>
    [MaxLength(50)]
    public string TypeName { get; set; }

    /// <summary>
    /// 事发时间
    /// </summary>
    [Required]
    public DateTime OccurDate { get; set; }

    /// <summary>
    /// 详细地址
    /// </summary>
    [Required]
    [MaxLength(200)]
    public string DetailAddress { get; set; }

    /// <summary>
    /// 线索主题
    /// </summary>
    [Required]
    [MaxLength(200)]
    public string Topic { get; set; }

    /// <summary>
    /// 详细内容
    /// </summary>
    [Required]
    [MaxLength(2000)]
    public string DetailContent { get; set; }

    /// <summary>
    /// 附件
    /// </summary>
    public IList<FileInfo> Files { get; set; }

    /// <summary>
    /// 反映人信息
    /// </summary>
    public IList<PersonInfo> PersonList { get; set; }

    /// <summary>
    /// 正式/测试
    /// </summary>
    public bool Prod { get; set; } = false;

    /// <summary>
    /// 是否高频举报
    /// </summary>
    public int IsFrequentReporting { get; set; } = 0;

    /// <summary>
    /// 热点分类(大类)
    /// </summary>
    public string RootCategoryInfo { get; set; }

    /// <summary>
    /// 热点分类(小类)
    /// </summary>
    public string CategoryInfo { get; set; }

    /// <summary>
    /// 截止时间
    /// </summary>
    public DateTime DeadLine { get; set; }
}

public class PersonInfo
{
    /// <summary>
    /// 反映人姓名
    /// </summary>
    [MaxLength(20)]
    public string ReflectUserName { get; set; }

    /// <summary>
    /// 反映人联系方式
    /// </summary>
    [MaxLength(20)]
    public string ReflectPhone { get; set; }

    /// <summary>
    /// 反映人身份证号
    /// </summary>
    [MaxLength(20)]
    public string ReflectCardId { get; set; } = "";
}

public class FileInfo
{
    /// <summary>
    /// 文件名称(带后缀)
    /// </summary>
    [Required]
    [MaxLength(30)]
    public string FileName { get; set; }

    /// <summary>
    /// 文件内容(base64编码)
    /// </summary>
    [Required]
    public string FileContent { get; set; }
}
