import Request from '@/utils/request/request-util';

/**
 * 代码生成 -模型字段api
 *
 */
export class ModelFieldApi {
  /**
   * 获取默认的字段列表
   * @param {*} params
   * @returns
   */
  static getDefaultFieldList(params) {
    return Request.getAndLoadData('/metaModelField/getDefaultFieldList', params);
  }

  /**
   * 获取指定模型的字段列表
   * @param {*} params
   * @returns
   */
  static saveOrUpdateFieldList(params) {
    return Request.post('/metaModelField/saveOrUpdateFieldList', params);
  }

  /**
   * 获取模型定义下的所有字段列表
   * @param {*} params
   * @returns
   */
  static getFieldList(params) {
    return Request.getAndLoadData('/metaModelField/getFieldList', params);
  }

  /**
   * 保存模型定义的字段列表
   * @param {*} params
   * @returns
   */
  static saveOrUpdateFieldList(params) {
    return Request.post('/metaModelField/saveOrUpdateFieldList', params);
  }
  
  /**
   * 解析create table语句，直接生成元数据模型
   * @param {*} params
   * @returns
   */
  static sqlImport(params) {
    return Request.post('/metaModelField/sqlImport', params);
  }
  
  /**
   * 获取当前业务下，主表的所有字段
   * @param {*} params
   * @returns
   */
  static simpleGetFieldList(params) {
    return Request.getAndLoadData('/metaModelField/simpleGetFieldList', params);
  }

  /**
   * 创建表到数据库
   * @param {*} params
   * @returns
   */
  static createTableIntoDb(params) {
    return Request.post('/metaModel/createTableIntoDb', params);
  }

  /**
   * 增量更新表到数据库
   * @param {*} params
   * @returns
   */
  static updateTableIntoDb(params) {
    return Request.post('/metaModel/updateTableIntoDb', params);
  }

  /**
   * 获取代码生成的组件下拉
   * @param {*} params
   * @returns
   */
  static getCodeGenerateComponentList(params) {
    return Request.get('/formComponent/getCodeGenerateComponentList', params);
  }
  
  /**
   * 获取是否创建表
   * @param {*} params
   * @returns
   */
  static validateTableExisted(params) {
    return Request.get('/metaModelCategory/validateTableExisted', params);
  }

  /**
   * 增量更新虚拟字段表到数据库
   * @param {*} params
   * @returns
   */
  static updateVirtualField(params) {
    return Request.post('/metaModelField/updateVirtualField', params);
  }
}
