{
  "openapi": "3.1.0",
  "info": {
    "title": "영신한의원 공개 정보 문서",
    "description": "영신한의원 정적 웹사이트의 공개 정보 페이지를 설명하는 문서입니다. 실제 예약은 네이버 예약 또는 전화로 진행하며, 별도의 온라인 상담 API는 제공하지 않습니다.",
    "version": "1.1.0",
    "contact": {
      "name": "영신한의원",
      "url": "https://youngsinhani.kr/contact.html"
    }
  },
  "servers": [
    {
      "url": "https://youngsinhani.kr"
    }
  ],
  "paths": {
    "/": {
      "get": {
        "summary": "메인 홈페이지",
        "description": "영신한의원 메인 홈페이지. 8체질의학 소개, 진료 과목, 예약 정보 등을 제공합니다.",
        "responses": {
          "200": {
            "description": "공개 안내 문서",
            "content": {
              "text/html": {
                "schema": {
                  "$ref": "#/components/schemas/PublicDocument"
                }
              }
            }
          },
          "404": {
            "description": "요청한 정적 문서가 없을 때의 호스팅 오류 페이지",
            "content": {
              "text/html": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDocument"
                }
              }
            }
          }
        },
        "operationId": "getHomePage",
        "tags": [
          "정보"
        ]
      }
    },
    "/about.html": {
      "get": {
        "summary": "의료진 소개",
        "description": "하지원 원장 소개 페이지. 학력, 경력, 진료 철학을 제공합니다.",
        "responses": {
          "200": {
            "description": "공개 안내 문서",
            "content": {
              "text/html": {
                "schema": {
                  "$ref": "#/components/schemas/PublicDocument"
                }
              }
            }
          },
          "404": {
            "description": "요청한 정적 문서가 없을 때의 호스팅 오류 페이지",
            "content": {
              "text/html": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDocument"
                }
              }
            }
          }
        },
        "operationId": "getClinicianPage",
        "tags": [
          "정보"
        ]
      }
    },
    "/for-ai.html": {
      "get": {
        "summary": "AI 에이전트용 정보 페이지",
        "description": "AI 에이전트가 영신한의원 정보를 효율적으로 읽을 수 있도록 구조화된 정보를 제공합니다.",
        "responses": {
          "200": {
            "description": "공개 안내 문서",
            "content": {
              "text/html": {
                "schema": {
                  "$ref": "#/components/schemas/PublicDocument"
                }
              }
            }
          },
          "404": {
            "description": "요청한 정적 문서가 없을 때의 호스팅 오류 페이지",
            "content": {
              "text/html": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDocument"
                }
              }
            }
          }
        },
        "operationId": "getAgentInformationPage",
        "tags": [
          "정보"
        ]
      }
    },
    "/llms.txt": {
      "get": {
        "summary": "LLM용 텍스트 정보",
        "description": "AI 언어 모델이 영신한의원 정보를 읽기 위한 텍스트 파일",
        "responses": {
          "200": {
            "description": "공개 안내 문서",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicDocument"
                }
              }
            }
          },
          "404": {
            "description": "요청한 정적 문서가 없을 때의 호스팅 오류 페이지",
            "content": {
              "text/html": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDocument"
                }
              }
            }
          }
        },
        "operationId": "getLlmText",
        "tags": [
          "정보"
        ]
      }
    },
    "/sitemap.xml": {
      "get": {
        "summary": "사이트맵",
        "description": "영신한의원 전체 페이지 목록",
        "responses": {
          "200": {
            "description": "공개 안내 문서",
            "content": {
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/PublicDocument"
                }
              }
            }
          },
          "404": {
            "description": "요청한 정적 문서가 없을 때의 호스팅 오류 페이지",
            "content": {
              "text/html": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDocument"
                }
              }
            }
          }
        },
        "operationId": "getSitemap",
        "tags": [
          "정보"
        ]
      }
    },
    "/contact.html": {
      "get": {
        "summary": "연락처 및 오시는 길",
        "description": "주소, 진료시간, 점심시간, 전화, 외부 예약 링크를 읽습니다.",
        "operationId": "getContactPage",
        "tags": [
          "정보"
        ],
        "responses": {
          "200": {
            "description": "공개 안내 문서",
            "content": {
              "text/html": {
                "schema": {
                  "$ref": "#/components/schemas/PublicDocument"
                }
              }
            }
          },
          "404": {
            "description": "요청한 정적 문서가 없을 때의 호스팅 오류 페이지",
            "content": {
              "text/html": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDocument"
                }
              }
            }
          }
        }
      }
    },
    "/clinic-info.json": {
      "get": {
        "summary": "한의원 공개 정보 JSON",
        "description": "공개된 주소, 전화번호, 진료시간 및 외부 예약 URL을 반환하는 정적 JSON 파일입니다.",
        "operationId": "getClinicInformation",
        "tags": [
          "정보"
        ],
        "responses": {
          "200": {
            "description": "공개 안내 문서",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClinicInfo"
                }
              }
            }
          },
          "404": {
            "description": "요청한 정적 문서가 없을 때의 호스팅 오류 페이지",
            "content": {
              "text/html": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDocument"
                }
              }
            }
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "정보",
      "description": "로그인이나 환자 정보 입력이 필요 없는 공개 안내 조회"
    }
  ],
  "components": {
    "schemas": {
      "PublicDocument": {
        "type": "string",
        "description": "정적 웹사이트에서 제공하는 HTML, 일반 텍스트 또는 XML 원문."
      },
      "ErrorDocument": {
        "type": "string",
        "description": "호스팅 서버가 반환하는 HTML 오류 페이지. JSON 오류 객체를 보장하지 않습니다."
      },
      "ClinicInfo": {
        "type": "object",
        "description": "홈페이지에 게시된 한의원 공개 안내 정보. 예약이나 의료적 판단을 수행하지 않습니다.",
        "required": [
          "name",
          "url",
          "telephone",
          "address",
          "openingHoursSpecification"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "name 공개 안내 값"
          },
          "url": {
            "type": "string",
            "description": "url 공개 안내 값"
          },
          "telephone": {
            "type": "string",
            "description": "telephone 공개 안내 값"
          },
          "closedDays": {
            "type": "string",
            "description": "closedDays 공개 안내 값"
          },
          "lunchHours": {
            "type": "string",
            "description": "lunchHours 공개 안내 값"
          },
          "director": {
            "type": "string",
            "description": "director 공개 안내 값"
          },
          "bookingUrl": {
            "type": "string",
            "description": "bookingUrl 공개 안내 값"
          },
          "contactUrl": {
            "type": "string",
            "description": "contactUrl 공개 안내 값"
          },
          "notice": {
            "type": "string",
            "description": "notice 공개 안내 값"
          },
          "address": {
            "type": "object",
            "description": "schema.org PostalAddress 형태의 공개 주소",
            "properties": {
              "@type": {
                "type": "string"
              },
              "streetAddress": {
                "type": "string"
              },
              "addressLocality": {
                "type": "string"
              },
              "addressRegion": {
                "type": "string"
              },
              "addressCountry": {
                "type": "string"
              }
            }
          },
          "openingHoursSpecification": {
            "type": "array",
            "description": "점심시간을 제외한 주간 진료시간. 일요일과 공휴일은 휴진.",
            "items": {
              "type": "object",
              "properties": {
                "@type": {
                  "type": "string"
                },
                "dayOfWeek": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "opens": {
                  "type": "string"
                },
                "closes": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  }
}
