using APT.BaseData.Domain.Entities;
using APT.BaseData.Domain.Enums;
using APT.Infrastructure.Core;
using APT.BaseData.Domain.ApiModel;
using System;
using System.Collections.Generic;
using APT.Infrastructure.Api;
namespace APT.BaseData.Domain.IServices.EX
{
    public interface IEntityOperateService : ICommonService
    {
        /// 
        /// 获取实体字段信息
        /// 
        /// 
        /// 仅获取基础类型
        /// 
        List GetEntityFields(string entityName, bool isOnlyBaseType);
        /// 
        /// 根据表名获取实体查询字段信息
        /// 
        /// 表名
        /// 字段前缀
        /// 显示名称前缀
        /// 展开字段列表
        /// 
        List GetEntityFieldsByTableName(string tableName, string fieldNamePrefix, string lablePrefix, List expandFields);
        /// 
        /// 根据查询表ID获取实体查询字段信息
        /// 
        /// 查询表单ID
        /// 查询字段CODE
        /// 字段前缀
        /// 显示名称前缀
        /// 展开字段列表
        /// 
        List GetEntityFieldsByQueryFormId(Guid formId, string code, string fieldNamePrefix, string lablePrefix, List expandFields, BaseFilter filter);
        /// 
        /// 根据表名初始化表单配置
        /// 
        /// 
        /// 
        /// 
        /// 
        void InitFormConfigByName(Guid orgId, string tableName, Guid? userId,
            PFInitFormConfigTypeEnum configType, Guid? menuParentId,
                string menuName, string menuIcon, bool isAddSend = false);
    }
}