using System.ComponentModel;
using System.ComponentModel.DataAnnotations;

namespace RB_MES_API.Models.Cloud
{
    /// <summary>
    /// Cloud表单查询接口使用的Json，不需要数据保存
    /// </summary>
    public class BillQuery
    {
        [Required]
        public string FormId { get; set; } = string.Empty;
        [Required]
        public string? FieldKeys { get; set; }    //需查询的字段key集合，字符串类型，格式："key1,key2,..."（必录）
                                                   //ClumnConvert的字段包含在此...
                                                   //注（查询单据体内码,需加单据体Key和下划线,如：FEntryKey_FEntryId）
        public string? FilterString { get; set; }       //查询Cloud的过滤条件，详见API说明（支持直接SQL语句）
        public string OrderString { get; set; } = string.Empty;       //查询Cloud的排序字段清单，每个字段之间用小逗号隔开，详见API说明
        [DefaultValue(0)]
        public int TopRowCount { get; set; } = 0;          //返回总行数，整型。0代表全部
        [DefaultValue(0)]
        public int StartRow { get; set; } = 0;          //开始行索引，分布使用
        [DefaultValue(0)]
        [RegularExpression(@"^[0-9]{0,3}")]
        public int Limit { get; set; } = 0;        //最大行数，分布使用，不能超过2000
        [StringLength(80)]
        public string SubSystemId { get; set; } = string.Empty;        //表单所在的子系统内码，字符串类型（非必录）
    }
}
