using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace IRaCIS.Core.Application.Service.DTO;

public class TemplateTable
{
    public string TableName { get; set; }

    public string Comment { get; set; }



    public List<TemplateTableProperty> AddOrEditPropertyList => TablePropertyList.Where(t => !AddOrUpdateExcludeNameList.Contains(t.PropertyName)).ToList();

    [JsonIgnore]
    public List<TemplateTableProperty> TablePropertyList { get; set; }

    [JsonIgnore]
    public List<string> AddOrUpdateExcludeNameList = new List<string>() { "CreateUserId", "UpdateUserId", "CreateTime", "UpdateTime", "DeleteUserId", "IsDeleted", "DeletedTime" };

}

public class TemplateTableProperty
{
    public string ColumnName { get; set; }

    public string PropertyName { get; set; }

    public string CSharpType { get; set; }

    public bool IsNullable { get; set; }

    public int? MaxLength { get; set; }

    public bool IsPrimarykey { get; set; }


    public string Comment { get; set; }


}