// OpenAPI 에디터 초기 상태 골격(빈 껍데기).
//  - specToData() 가 deepClone 하여 서버 spec 값으로 덮어쓰는 구조 기준값.
//  - 실제 데모/샘플 값은 두지 않는다(팝업은 항상 서버 spec 로드 후 렌더).
//  - docOptions 만 기능 기본값으로 유지(문서 미리보기 옵션).
// locked:true = 게이트웨이 자동 주입(회색+자물쇠) / locked:false = 사용자 편집.

window.SAMPLE_DATA = (function () {
  function f() { return { value: '', locked: false }; }
  return {
    info: {
      title:       f(),
      version:     f(),
      summary:     f(),
      description: f(),
      termsOfService: f(),
      contact: { name: f(), email: f(), url: f() },
      license: { name: f(), url: f() }
    },

    tags: [],

    externalDocs: { description: f(), url: f() },

    servers: [],

    serverVariables: [],

    operation: {
      method:      f(),
      path:        f(),
      operationId: f(),
      summary:     f(),
      description: f(),
      tags:        { value: [], locked: false },
      deprecated:  { value: false, locked: false }
    },

    // 파라미터 (Path/Query/Header/Cookie)
    parameters: [],

    // Request Body 스키마
    requestBody: {
      mediaType: 'application/json',
      required: { value: false, locked: false },
      schema: []
    },

    // 응답 스키마 (상태코드 별)
    responses: {
      '200': { description: f(), schema: [] }
    },

    // 보안 스킴
    securitySchemes: [],
    globalSecurity: [],

    // 예제
    examples: {
      request: {},
      response: {}
    },

    // 문서 옵션
    docOptions: {
      theme: 'light',
      lang: 'ko',
      includeExamples: true,
      tryItOut: true,
      defaultExpandDepth: -1,
      layout: 'BaseLayout',
      tagFilter: [],
      sideToc: true
    }
  };
})();
