{
  "modal": {
    "titles": {
      "create": "메뉴배너 등록",
      "update": "메뉴배너 수정",
      "view": "메뉴배너 상세"
    },
    "grid": {
      "rows": 8,
      "columns": 12
    },
    "fields": [
      {
        "id": "date_range",
        "type": "dateTimeRange",
        "label": "등록기간",
        "position": { "row": 0, "col": 0, "width": 12 },
        "startDateField": "start_dt",
        "endDateField": "end_dt",
        "startDateLabel": "시작일자",
        "endDateLabel": "종료일자",
        "validations": ["required"],
        "visibleOn": ["create", "update", "view"],
        "editableOn": ["create", "update"]
      },
      {
        "id": "title",
        "type": "text",
        "label": "배너 제목",
        "position": { "row": 1, "col": 0, "width": 6 },
        "validations": ["required"],
        "visibleOn": ["create", "update", "view"],
        "editableOn": ["create", "update"],
        "width": "100%"
      },
      {
        "id": "image_ko",
        "type": "imageUpload",
        "label": "이미지 첨부 (KO)",
        "position": { "row": 2, "col": 0, "width": 12 },
        "language": "KO",
        "validations": ["required"],
        "visibleOn": ["create", "update", "view"],
        "editableOn": ["create", "update"]
      },
      {
        "id": "image_en",
        "type": "imageUpload",
        "label": "이미지 첨부 (EN)",
        "position": { "row": 3, "col": 0, "width": 12 },
        "language": "EN",
        "validations": ["required"],
        "visibleOn": ["create", "update", "view"],
        "editableOn": ["create", "update"]
      },
      {
        "id": "image_ja",
        "type": "imageUpload",
        "label": "이미지 첨부 (JA)",
        "position": { "row": 4, "col": 0, "width": 12 },
        "language": "JA",
        "validations": ["required"],
        "visibleOn": ["create", "update", "view"],
        "editableOn": ["create", "update"]
      },
      {
        "id": "is_link",
        "type": "checkbox",
        "label": "이미지 링크 여부",
        "position": { "row": 5, "col": 0, "width": 12 },
        "visibleOn": ["create", "update", "view"],
        "editableOn": ["create", "update"]
      },
      {
        "id": "link_ko",
        "type": "textWithSuffix",
        "label": "웹 링크",
        "position": { "row": 6, "col": 0, "width": 12 },
        "suffix": "KO",
        "conditional": { "field": "is_link", "operator": "==", "value": true },
        "validations": ["required"],
        "visibleOn": ["create", "update", "view"],
        "editableOn": ["create", "update"],
        "width": "100%"
      },
      {
        "id": "link_en",
        "type": "textWithSuffix",
        "label": "",
        "position": { "row": 7, "col": 0, "width": 12 },
        "suffix": "EN",
        "conditional": { "field": "is_link", "operator": "==", "value": true },
        "validations": ["required"],
        "visibleOn": ["create", "update", "view"],
        "editableOn": ["create", "update"],
        "width": "100%"
      },
      {
        "id": "link_ja",
        "type": "textWithSuffix",
        "label": "",
        "position": { "row": 8, "col": 0, "width": 12 },
        "suffix": "JA",
        "conditional": { "field": "is_link", "operator": "==", "value": true },
        "validations": ["required"],
        "visibleOn": ["create", "update", "view"],
        "editableOn": ["create", "update"],
        "width": "100%"
      }
    ],
    "actions": {
      "create": [
        { "id": "cancel", "label": "취소", "theme": "line", "action": "cancel" },
        { "id": "submit", "label": "등록", "theme": "primary", "action": "submit" }
      ],
      "update": [
        { "id": "cancel", "label": "취소", "theme": "line", "action": "cancel" },
        { "id": "submit", "label": "수정", "theme": "primary", "action": "submit" }
      ],
      "view": [
        { "id": "cancel", "label": "취소", "theme": "line", "action": "cancel" },
        { "id": "edit", "label": "수정", "theme": "primary", "action": "edit" }
      ]
    },
    "validations": {
      "create": [
        {
          "condition": "start_dt < (new Date() + 60 * 60000)",
          "message": "EVENT_TIME_LIMIT_ADD"
        },
        {
          "condition": "end_dt <= start_dt",
          "message": "DATE_START_DIFF_END_WARNING"
        }
      ],
      "update": [
        {
          "condition": "end_dt <= start_dt",
          "message": "DATE_START_DIFF_END_WARNING"
        }
      ]
    },
    "api": {
      "create": {
        "endpoint": "MenuBannerSingleRegist",
        "errorMapping": {
          "ERROR_API_FAIL": "API_FAIL",
          "ERROR_REGIST_FAIL": "REGIST_FAIL"
        }
      },
      "update": {
        "endpoint": "MenuBannerUpdate",
        "errorMapping": {
          "ERROR_API_FAIL": "API_FAIL",
          "ERROR_UPDATE_FAIL": "UPDATE_FAIL"
        }
      }
    }
  },
  "initData": {
    "title": "",
    "is_link": false,
    "start_dt": "",
    "end_dt": "",
    "image_list": [
      { "language": "KO", "content": "" },
      { "language": "EN", "content": "" },
      { "language": "JA", "content": "" }
    ],
    "link_list": [
      { "language": "KO", "content": "" },
      { "language": "EN", "content": "" },
      { "language": "JA", "content": "" }
    ]
  }
}