using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static Google.Protobuf.Reflection.SourceCodeInfo.Types;

namespace OASystem.Domain.ViewModels.QiYeWeChat
{
    /// <summary>
    /// 审批模板详情 View
    /// </summary>
    public class TemplateDetailView:ResponseBase
    {
        /// <summary>
        /// 文本描述
        /// </summary>
        public List<ValueItem> template_names { get; set; }
        /// <summary>
        /// 模板控件信息
        /// </summary>
        public Template_content template_content { get; set; }

        public VacationItem vacation_list { get; set; }
    }


    public class VacationItem
    {
        public List<VacationItemInfo> item { get; set; }
    }


    public class VacationItemInfo
    {
        /// <summary>
        /// 类型Id
        /// </summary>
        public int id { get; set; }

        /// <summary>
        /// 类型值
        /// </summary>
        public List<ValueItem> name { get; set; }
    }

    public class VacationLeaveTypeView
    {
        /// <summary>
        /// 请假 类型id
        /// </summary>
        public int id { get; set; }

        /// <summary>
        /// 请假 类型名称
        /// </summary>
        public string name { get; set; }
    }

    /// <summary>
    /// 文本描述 中\英文
    /// </summary>
    public class ValueItem
    {
        /// <summary>
        /// 中文描述
        /// </summary>
        public string text { get; set; }
        /// <summary>
        /// 英文描述
        /// </summary>
        public string lang { get; set; }
    }

    /// <summary>
    /// 模板控件属性,包含了模板内控件的各种属性信息
    /// </summary>
    public class Property
    {
        /// <summary>
        /// 控件类型:Text-文本;Textarea-多行文本;Number-数字;Money-金额;Date-日期/日期+时间;Selector-单选/多选;
        /// Contact-成员/部门;Tips-说明文字;File-附件;Table-明细;Attendance-假勤控件;Vacation-请假控件;Location-位置;
        /// RelatedApproval-关联审批单;Formula-公式;DateRange-时长
        /// </summary>
        public string control { get; set; }
        /// <summary>
        /// 控件id
        /// </summary>
        public string id { get; set; }
        /// <summary>
        /// 控件名称,若配置了多语言则会包含中英文的控件名称,默认为zh_CN中文
        /// </summary>
        public List<ValueItem> title { get; set; }
        /// <summary>
        /// 控件说明,向申请者展示的控件填写说明,若配置了多语言则会包含中英文的控件说明,默认为zh_CN中文
        /// </summary>
        public List<ValueItem> placeholder { get; set; }
        /// <summary>
        /// 是否必填:1-必填;0-非必填
        /// </summary>
        public int require { get; set; }
        /// <summary>
        /// 是否参与打印:1-不参与打印;0-参与打印
        /// </summary>
        public int un_print { get; set; }
    }


    public class Config
    {
        /// <summary>
        /// 
        /// </summary>
        public Selector selector { get; set; }
    }

    /// <summary>
    /// 模板控件数组。模板详情由多个不同类型的控件组成,控件类型详细说明见附录。
    /// </summary>
    public class ControlsItem
    {
        /// <summary>
        /// 模板控件属性,包含了模板内控件的各种属性信息
        /// </summary>
        public Property property { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public Config config { get; set; }
    }

    public class Template_content
    {
        /// <summary>
        /// 
        /// </summary>
        public List<ControlsItem> controls { get; set; }
    }
}