// 테이블 타입 관리 다국어 키 상수
export const TABLE_MANAGEMENT_KEYS = {
  // 페이지 제목 및 설명
  PAGE_TITLE: "table.management.page.title",
  PAGE_DESCRIPTION: "table.management.page.description",

  // 테이블 관련
  TABLE_NAME: "table.management.table.name",
  TABLE_DISPLAY_NAME: "table.management.table.display.name",
  TABLE_DESCRIPTION: "table.management.table.description",
  TABLE_COLUMN_COUNT: "table.management.table.column.count",

  // 컬럼 관련
  COLUMN_NAME: "table.management.column.name",
  COLUMN_DISPLAY_NAME: "table.management.column.display.name",
  COLUMN_DB_TYPE: "table.management.column.db.type",
  COLUMN_WEB_TYPE: "table.management.column.web.type",
  COLUMN_DETAIL_SETTINGS: "table.management.column.detail.settings",
  COLUMN_DESCRIPTION: "table.management.column.description",
  COLUMN_NULLABLE: "table.management.column.nullable",
  COLUMN_DEFAULT_VALUE: "table.management.column.default.value",
  COLUMN_MAX_LENGTH: "table.management.column.max.length",
  COLUMN_NUMERIC_PRECISION: "table.management.column.numeric.precision",
  COLUMN_NUMERIC_SCALE: "table.management.column.numeric.scale",
  COLUMN_CODE_CATEGORY: "table.management.column.code.category",
  COLUMN_CODE_VALUE: "table.management.column.code.value",
  COLUMN_REFERENCE_TABLE: "table.management.column.reference.table",
  COLUMN_REFERENCE_COLUMN: "table.management.column.reference.column",

  // 웹 타입 옵션
  WEB_TYPE_TEXT: "table.management.web.type.text",
  WEB_TYPE_TEXT_DESC: "table.management.web.type.text.description",
  WEB_TYPE_NUMBER: "table.management.web.type.number",
  WEB_TYPE_NUMBER_DESC: "table.management.web.type.number.description",
  WEB_TYPE_DATE: "table.management.web.type.date",
  WEB_TYPE_DATE_DESC: "table.management.web.type.date.description",
  WEB_TYPE_CODE: "table.management.web.type.code",
  WEB_TYPE_CODE_DESC: "table.management.web.type.code.description",
  WEB_TYPE_ENTITY: "table.management.web.type.entity",
  WEB_TYPE_ENTITY_DESC: "table.management.web.type.entity.description",
  WEB_TYPE_TEXTAREA: "table.management.web.type.textarea",
  WEB_TYPE_TEXTAREA_DESC: "table.management.web.type.textarea.description",
  WEB_TYPE_SELECT: "table.management.web.type.select",
  WEB_TYPE_SELECT_DESC: "table.management.web.type.select.description",
  WEB_TYPE_CHECKBOX: "table.management.web.type.checkbox",
  WEB_TYPE_CHECKBOX_DESC: "table.management.web.type.checkbox.description",
  WEB_TYPE_RADIO: "table.management.web.type.radio",
  WEB_TYPE_RADIO_DESC: "table.management.web.type.radio.description",
  WEB_TYPE_FILE: "table.management.web.type.file",
  WEB_TYPE_FILE_DESC: "table.management.web.type.file.description",
  WEB_TYPE_DECIMAL: "table.management.web.type.decimal",
  WEB_TYPE_DECIMAL_DESC: "table.management.web.type.decimal.description",
  WEB_TYPE_DATETIME: "table.management.web.type.datetime",
  WEB_TYPE_DATETIME_DESC: "table.management.web.type.datetime.description",
  WEB_TYPE_BOOLEAN: "table.management.web.type.boolean",
  WEB_TYPE_BOOLEAN_DESC: "table.management.web.type.boolean.description",
  WEB_TYPE_EMAIL: "table.management.web.type.email",
  WEB_TYPE_EMAIL_DESC: "table.management.web.type.email.description",
  WEB_TYPE_TEL: "table.management.web.type.tel",
  WEB_TYPE_TEL_DESC: "table.management.web.type.tel.description",
  WEB_TYPE_URL: "table.management.web.type.url",
  WEB_TYPE_URL_DESC: "table.management.web.type.url.description",
  WEB_TYPE_DROPDOWN: "table.management.web.type.dropdown",
  WEB_TYPE_DROPDOWN_DESC: "table.management.web.type.dropdown.description",
  WEB_TYPE_CATEGORY: "table.management.web.type.category",
  WEB_TYPE_CATEGORY_DESC: "table.management.web.type.category.description",

  // 공통 UI 요소
  BUTTON_REFRESH: "table.management.button.refresh",
  BUTTON_SAVE: "table.management.button.save",
  BUTTON_CANCEL: "table.management.button.cancel",
  BUTTON_EDIT: "table.management.button.edit",

  // 검색 및 필터
  SEARCH_PLACEHOLDER: "table.management.search.placeholder",
  SELECT_TABLE_PLACEHOLDER: "table.management.select.table.placeholder",
  SELECT_CODE_PLACEHOLDER: "table.management.select.code.placeholder",

  // 메시지
  MESSAGE_LOADING_TABLES: "table.management.message.loading.tables",
  MESSAGE_LOADING_COLUMNS: "table.management.message.loading.columns",
  MESSAGE_TABLES_LOADED: "table.management.message.tables.loaded",
  MESSAGE_COLUMNS_LOADED: "table.management.message.columns.loaded",
  MESSAGE_SAVE_SUCCESS: "table.management.message.save.success",
  MESSAGE_SAVE_ERROR: "table.management.message.save.error",
  MESSAGE_NO_TABLES: "table.management.message.no.tables",
  MESSAGE_NO_COLUMNS: "table.management.message.no.columns",

  // 상태 및 라벨
  STATUS_ACTIVE: "table.management.status.active",
  STATUS_INACTIVE: "table.management.status.inactive",
  LABEL_YES: "table.management.label.yes",
  LABEL_NO: "table.management.label.no",
  LABEL_NONE: "table.management.label.none",

  // 도움말 및 설명
  HELP_WEB_TYPE: "table.management.help.web.type",
  HELP_CODE_CATEGORY: "table.management.help.code.category",
  HELP_REFERENCE_TABLE: "table.management.help.reference.table",
} as const;

// 웹 타입 옵션을 다국어 키와 매핑
export const WEB_TYPE_OPTIONS_WITH_KEYS = [
  {
    value: "text",
    labelKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_TEXT,
    descriptionKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_TEXT_DESC,
  },
  {
    value: "number",
    labelKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_NUMBER,
    descriptionKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_NUMBER_DESC,
  },
  {
    value: "date",
    labelKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_DATE,
    descriptionKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_DATE_DESC,
  },
  {
    value: "code",
    labelKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_CODE,
    descriptionKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_CODE_DESC,
  },
  {
    value: "entity",
    labelKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_ENTITY,
    descriptionKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_ENTITY_DESC,
  },
  {
    value: "textarea",
    labelKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_TEXTAREA,
    descriptionKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_TEXTAREA_DESC,
  },
  {
    value: "select",
    labelKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_SELECT,
    descriptionKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_SELECT_DESC,
  },
  {
    value: "checkbox",
    labelKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_CHECKBOX,
    descriptionKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_CHECKBOX_DESC,
  },
  {
    value: "radio",
    labelKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_RADIO,
    descriptionKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_RADIO_DESC,
  },
  {
    value: "file",
    labelKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_FILE,
    descriptionKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_FILE_DESC,
  },
  {
    value: "decimal",
    labelKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_DECIMAL,
    descriptionKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_DECIMAL_DESC,
  },
  {
    value: "datetime",
    labelKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_DATETIME,
    descriptionKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_DATETIME_DESC,
  },
  {
    value: "boolean",
    labelKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_BOOLEAN,
    descriptionKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_BOOLEAN_DESC,
  },
  {
    value: "email",
    labelKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_EMAIL,
    descriptionKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_EMAIL_DESC,
  },
  {
    value: "tel",
    labelKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_TEL,
    descriptionKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_TEL_DESC,
  },
  {
    value: "url",
    labelKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_URL,
    descriptionKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_URL_DESC,
  },
  {
    value: "dropdown",
    labelKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_DROPDOWN,
    descriptionKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_DROPDOWN_DESC,
  },
  {
    value: "category",
    labelKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_CATEGORY,
    descriptionKey: TABLE_MANAGEMENT_KEYS.WEB_TYPE_CATEGORY_DESC,
  },
] as const;
