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; }
    }
}
