Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save bakyeono/bd363ec3e151efc8b7a0bd57dc86cb6f to your computer and use it in GitHub Desktop.
Save bakyeono/bd363ec3e151efc8b7a0bd57dc86cb6f to your computer and use it in GitHub Desktop.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://gist.githubusercontent.com/bakyeono/bd363ec3e151efc8b7a0bd57dc86cb6f/raw/ec291b45b8eb376d20caa3c6e3446e5ae8dc2fd1/producer-and-productions-change-payload-v20250512.schema.json",
"$defs": {
"EnumFacilityType": {
"type": "string",
"description": "OPEN_FIELD: 노지, OPEN_FIELD_WITH_SMART_FARM: 노지 스마트팜, GREENHOUSE: 비닐하우스, GREENHOUSE_WITH_SMART_FARM: 비닐하우스 스마트팜, GLASSHOUSE: 유리온실, GLASSHOUSE_WITH_SMART_FARM: 유리온실 스마트팜",
"enum": [
"OPEN_FIELD",
"OPEN_FIELD_WITH_SMART_FARM",
"GREENHOUSE",
"GREENHOUSE_WITH_SMART_FARM",
"GLASSHOUSE",
"GLASSHOUSE_WITH_SMART_FARM"
]
},
"EnumSupplierType": {
"type": "string",
"description": "FARMER: 농부, DISTRIBUTOR: 유통인",
"enum": [
"FARMER",
"DISTRIBUTOR"
]
},
"EnumProducerShippingChannel": {
"type": "string",
"description": "OTHER: 기타, WHOLESALE_MARKET: 도매시장, 공판장, NONGHYEOP: 농협, CORPORATION: 영농조합, 농업회사, ORIGIN_BASED_DISTRIBUTOR: 산지 수집상, B2B: 유통업체 (식자재, 급식, 마트 등), B2C: 개인 판매 (온라인, 노상), LOCAL_MARKET: 로컬 푸드 직매장",
"enum": [
"OTHER",
"WHOLESALE_MARKET",
"NONGHYEOP",
"CORPORATION",
"ORIGIN_BASED_DISTRIBUTOR",
"B2B",
"B2C",
"LOCAL_MARKET"
]
}
},
"type": "object",
"title": "생산자와 생산 수정 JSON 스키마",
"description": "생산자와 생산 수정 JSON 스키마",
"required": [
"target_producer_id"
],
"anyOf": [
{
"required": [
"update_producer"
]
},
{
"required": [
"upsert_productions"
]
}
],
"additionalProperties": false,
"properties": {
"target_type": {
"type": "string",
"title": "수정 대상의 유형",
"description": "고정값: \"PRODUCER_AND_PRODUCTIONS\"",
"const": "PRODUCER_AND_PRODUCTIONS"
},
"target_producer_id": {
"type": "integer",
"title": "수정 대상 생산자 ID",
"description": "수정사항은 단일한 생산자로 한정됩니다. 즉, 동봉된 수정 내용의 수정 대상이 이 값과 일치해야 합니다."
},
"update_producer": {
"type": "object",
"title": "생산자 수정 대상과 수정 내용",
"required": [
"target",
"values"
],
"additionalProperties": false,
"properties": {
"target": {
"type": "object",
"title": "수정 대상",
"required": [
"producer_id"
],
"additionalProperties": false,
"properties": {
"producer_id": {
"type": "integer",
"title": "대상 생산자 ID"
}
}
},
"values": {
"type": "object",
"title": "수정 내용",
"minProperties": 1,
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"title": "이름"
},
"phone": {
"type": "string",
"title": "전화번호"
},
"memo": {
"type": [
"string",
"null"
],
"title": "메모"
},
"total_production_area_pyeong": {
"type": [
"integer",
"null"
],
"title": "총 생산 면적 (평)"
},
"is_on_blacklist": {
"type": "boolean",
"title": "블랙리스트 여부"
},
"address_region_category_id": {
"type": [
"integer",
"null"
],
"title": "주소 지역 분류 ID"
},
"address_region_category_legal_id": {
"type": [
"integer",
"null"
],
"title": "주소 지역 분류 (법정동) ID"
},
"address_land_based": {
"type": [
"string",
"null"
],
"title": "지번 주소"
},
"address_road_based": {
"type": [
"string",
"null"
],
"title": "도로명 주소"
},
"address_detail": {
"type": [
"string",
"null"
],
"title": "상세 주소: 주소지 내 세부 위치 (예: A아파트 B동 C호)"
},
"address_land_type_code": {
"type": [
"string",
"null"
],
"title": "지번 유형 코드: 일반은 '1', 임야는 '2'를 입력",
"enum": [
null,
"1",
"2"
]
},
"address_land_number_1": {
"type": [
"integer",
"null"
],
"title": "지번 본번"
},
"address_land_number_2": {
"type": [
"integer",
"null"
],
"title": "지번 부번"
},
"organization_type": {
"type": [
"string",
"null"
],
"title": "생산단체 유형"
},
"representative_name": {
"type": [
"string",
"null"
],
"title": "생산단체 대표자 이름"
},
"number_of_members": {
"type": [
"integer",
"null"
],
"title": "생산단체 구성원 수"
},
"number_of_members_appr_start": {
"type": [
"integer",
"null"
],
"title": "생산단체 구성원 수 범위 시작"
},
"number_of_members_appr_end": {
"type": [
"integer",
"null"
],
"title": "생산단체 구성원 수 범위 끝"
},
"career_json": {
"type": [
"object",
"null"
],
"title": "경력 정보 (JSON, 자유형식)"
},
"business_registration_number": {
"type": [
"string",
"null"
],
"title": "생산단체 사업자등록번호",
"maxLength": 10,
"pattern": "^[0-9]{10}$"
},
"email": {
"type": [
"string",
"null"
],
"title": "생산단체 이메일",
"format": "email"
},
"shipping_channels": {
"type": [
"array",
"null"
],
"title": "출하 채널",
"items": {
"$ref": "#/$defs/EnumProducerShippingChannel"
}
},
"supplier_types": {
"type": [
"array",
"null"
],
"title": "공급자 유형",
"items": {
"$ref": "#/$defs/EnumSupplierType"
}
},
"farming_skill_certification": {
"type": [
"string",
"null"
],
"title": "농사 실력 인증",
"description": "수상이력, 명인, 마이스터 등록 등"
}
}
}
}
},
"upsert_productions": {
"type": "array",
"minItems": 1,
"maxItems": 100,
"items": {
"type": "object",
"title": "생산 수정 대상과 수정 내용",
"description": "수정 대상이 존재하지 않는 경우 생성됩니다.",
"required": [
"target",
"values"
],
"additionalProperties": false,
"properties": {
"target": {
"type": "object",
"title": "수정 대상",
"required": [
"producer_id",
"product_category_id"
],
"additionalProperties": false,
"properties": {
"producer_id": {
"type": "integer",
"title": "대상 생산자 ID"
},
"product_category_id": {
"type": "integer",
"title": "대상 상품 분류 ID"
}
}
},
"values": {
"type": "object",
"title": "수정 내용",
"minProperties": 1,
"additionalProperties": false,
"properties": {
"address_region_category_id": {
"type": [
"integer",
"null"
],
"title": "주소 지역 분류 ID"
},
"address_region_category_legal_id": {
"type": [
"integer",
"null"
],
"title": "주소 지역 분류 (법정동) ID"
},
"address_land_based": {
"type": [
"string",
"null"
],
"title": "지번 주소"
},
"address_road_based": {
"type": [
"string",
"null"
],
"title": "도로명 주소"
},
"address_detail": {
"type": [
"string",
"null"
],
"title": "상세 주소",
"description": "주소지 내 세부 위치 (예: A아파트 B동 C호)"
},
"address_land_type_code": {
"type": [
"string",
"null"
],
"title": "지번 유형 코드: 일반은 '1', 임야는 '2'를 입력",
"enum": [
null,
"1",
"2"
]
},
"address_land_number_1": {
"type": [
"integer",
"null"
],
"title": "지번 본번"
},
"address_land_number_2": {
"type": [
"integer",
"null"
],
"title": "지번 부번"
},
"state": {
"type": "string",
"enum": [
"UNKNOWN",
"PRODUCE",
"NOT_PRODUCE"
],
"title": "상태",
"description": "UNKNOWN: 모름, PRODUCE: 생산, NOT_PRODUCE: 비생산"
},
"area_pyeong": {
"type": [
"integer",
"null"
],
"title": "면적 (평)"
},
"estimated_harvest_date_kst": {
"type": [
"string",
"null"
],
"title": "예상 수확일 (한국 시간)",
"format": "date"
},
"estimated_harvest_quantity_kg": {
"type": [
"integer",
"null"
],
"title": "예상 수확량 (kg)"
},
"estimated_harvest_quantity_kg_appr_start": {
"type": [
"integer",
"null"
],
"title": "예상 수확량 범위 시작 (kg)"
},
"estimated_harvest_quantity_kg_appr_end": {
"type": [
"integer",
"null"
],
"title": "예상 수확량 범위 끝 (kg)"
},
"shipping_channels": {
"type": [
"array",
"null"
],
"title": "출하 채널",
"items": {
"$ref": "#/$defs/EnumProducerShippingChannel"
}
},
"facilities": {
"type": [
"array",
"null"
],
"items": {
"$ref": "#/$defs/EnumFacilityType"
},
"title": "시설"
},
"harvest_period_text": {
"type": [
"string",
"null"
],
"title": "수확 기간 텍스트"
},
"number_of_plants": {
"type": [
"integer",
"null"
],
"title": "식물 수"
},
"recommending_producer_text": {
"type": [
"string",
"null"
],
"title": "추천 생산자 텍스트"
},
"is_storage_available": {
"type": [
"boolean",
"null"
],
"title": "저장 가능 여부"
},
"eco_certification": {
"type": [
"string",
"null"
],
"title": "친환경 인증"
},
"is_delivery_available": {
"type": [
"boolean",
"null"
],
"title": "배송 가능 여부"
}
}
}
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment