package cn.stylefeng.team.meta.api.constants;

import cn.hutool.core.collection.ListUtil;

import java.util.List;

public interface MetaConstants {

    String META_MODULE_NAME = "kernel-s-meta";

    String META_EXCEPTION_STEP_CODE = "99";

    String COMMON_ID_FILED_CODE = "id";

    String COMMON_CREATE_TIME_FIELD_CODE = "create_time";

    String COMMON_UPDATE_TIME_FIELD_CODE = "update_time";

    String COMMON_CREATE_USER_FIELD_CODE = "create_user";

    String COMMON_UPDATE_USER_FIELD_CODE = "update_user";

    String COMMON_DEL_FLAG_FIELD_CODE = "del_flag";

    String COMMON_VERSION_FLAG_FIELD_CODE = "version_flag";

    String COMMON_TENANT_ID_FIELD_CODE = "tenant_id";

    List<String> COMMON_FORM_RENDER_FIELD_CODE_LIST = ListUtil.list(false,
            COMMON_ID_FILED_CODE,
            COMMON_CREATE_TIME_FIELD_CODE,
            COMMON_UPDATE_TIME_FIELD_CODE,
            COMMON_CREATE_USER_FIELD_CODE,
            COMMON_UPDATE_USER_FIELD_CODE,
            COMMON_DEL_FLAG_FIELD_CODE,
            COMMON_VERSION_FLAG_FIELD_CODE
    );

    List<String> COMMON_VIEW_RENDER_EXCLUDE = ListUtil.list(false,
            COMMON_UPDATE_TIME_FIELD_CODE,
            COMMON_UPDATE_USER_FIELD_CODE,
            COMMON_DEL_FLAG_FIELD_CODE,
            COMMON_VERSION_FLAG_FIELD_CODE
    );

    String REMOVE_FOUR_FIELD_LIST_NAME = "removeFourCreateFieldList";

    String REMOVE_BASE_FIELD_LIST_NAME = "removeBaseFieldList";

    String TOTAL_FIELD_LIST_NAME = "totalFieldList";

    String ONE_TO_ONE_MODEL_LIST = "oneToOneModelList";

    String ONE_TO_MANY_MODEL_LIST = "oneToManyModelList";

    String LINK_PARENT_FIELD_CODE = "linkParentField";

    String MAIN_MODEL_FIELD_CODE = "mainModel";

    String PRIMARY_KEY_FIELD_CODE = "keyField";

    String VIEW_FIELD_LIST_FIELD_CODE = "viewFieldList";

    String FORM_ITEM_LIST_FIELD_CODE = "formItemList";

    String BIZ_FORM_SNIPPET_FIELD_CODE = "commonFormCodeSnippet";

    String BIZ_FORM_ONE_TO_ONE_MODEL_LIST_FIELD_CODE = "oneToOneModelList";

    String BIZ_FORM_TO_STRING_FIELD_CODE_SNIPPET = "formToStringCodeSnippet";

    String BIZ_FORM_CONFIG_FIELD_CODE = "formConfig";

    String MYSQL_CREATE_TABLE_FILE_NAME = "MySQL";

    String ORACLE_CREATE_TABLE_FILE_NAME = "Oracle";

    String POSTGRESQL_CREATE_TABLE_FILE_NAME = "PostgreSQL";

    String DEFAULT_MAIN_MODEL_LINK_TABLE_FIELD_SUFFIX = "_form_item_list";

}
