daiso 1.2.8 → 1.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -17
- package/dist/api/actionsProxy.js +0 -10
- package/dist/api/cgvHandlers.js +4 -3
- package/dist/api/configStatus.js +7 -2
- package/dist/api/gs25Handlers.js +4 -3
- package/dist/api/handlers.js +2 -1
- package/dist/api/healthCheckDefinitions.js +0 -9
- package/dist/api/healthChecks.js +0 -1
- package/dist/api/lottecinemaHandlers.js +4 -3
- package/dist/api/lottemartHandlers.js +5 -142
- package/dist/api/megaboxHandlers.js +4 -3
- package/dist/api/opinetHandlers.js +2 -1
- package/dist/api/routes/cgvRoutes.js +3 -3
- package/dist/api/routes/cuRoutes.js +2 -2
- package/dist/api/routes/gs25Routes.js +3 -3
- package/dist/api/routes/lottecinemaRoutes.js +3 -3
- package/dist/api/routes/lottemartRoutes.js +4 -16
- package/dist/api/routes/megaboxRoutes.js +3 -3
- package/dist/api/routes/opinetRoutes.js +4 -4
- package/dist/cli.js +5 -5
- package/dist/cliHelp.js +0 -3
- package/dist/cliHelpDefinitions.js +2 -19
- package/dist/index.js +10 -11
- package/dist/middleware/dailyRateLimit.js +0 -1
- package/dist/pages/openapiFullSpec.js +0 -2
- package/dist/pages/openapiSpecActionParameters.js +4 -4
- package/dist/pages/openapiSpecComponents.js +0 -2
- package/dist/pages/openapiSpecPathsMegabox.js +1 -1
- package/dist/pages/promptReferenceText.js +0 -5
- package/dist/pages/promptRetailCinemaText.js +0 -26
- package/dist/services/cgv/index.js +3 -6
- package/dist/services/cgv/location.js +38 -125
- package/dist/services/cgv/tools/findTheaters.js +5 -4
- package/dist/services/cgv/tools/getTimetable.js +5 -4
- package/dist/services/cgv/tools/searchMovies.js +5 -4
- package/dist/services/cu/client.js +3 -35
- package/dist/services/cu/index.js +1 -0
- package/dist/services/cu/tools/checkInventory.js +3 -1
- package/dist/services/gs25/client.js +3 -33
- package/dist/services/gs25/index.js +2 -2
- package/dist/services/gs25/tools/checkInventory.js +3 -1
- package/dist/services/gs25/tools/findNearbyStores.js +3 -1
- package/dist/services/lottecinema/index.js +3 -6
- package/dist/services/lottecinema/location.js +13 -100
- package/dist/services/lottecinema/tools/findNearbyTheaters.js +7 -6
- package/dist/services/lottecinema/tools/getRemainingSeats.js +5 -4
- package/dist/services/lottecinema/tools/listNowShowing.js +5 -4
- package/dist/services/lottemart/client.js +5 -32
- package/dist/services/lottemart/geocode.js +3 -46
- package/dist/services/megabox/index.js +9 -8
- package/dist/services/megabox/location.js +19 -84
- package/dist/services/megabox/tools/findNearbyTheaters.js +7 -7
- package/dist/services/megabox/tools/getRemainingSeats.js +5 -5
- package/dist/services/megabox/tools/listNowShowing.js +5 -5
- package/dist/services/opinet/client.js +1 -1
- package/dist/services/opinet/index.js +1 -1
- package/dist/services/opinet/location.js +5 -56
- package/dist/services/opinet/tools.js +2 -2
- package/dist/utils/geocode.js +155 -0
- package/dist/utils/http.js +2 -2
- package/openapi.json +4 -183
- package/openapi.yaml +4 -131
- package/package.json +1 -2
- package/dist/pages/openapiSpecComponentsLotteMart.js +0 -85
- package/dist/pages/openapiSpecPathsLotteMart.js +0 -157
package/openapi.json
CHANGED
|
@@ -91,8 +91,6 @@
|
|
|
91
91
|
"emart24FindStores",
|
|
92
92
|
"emart24SearchProducts",
|
|
93
93
|
"emart24CheckInventory",
|
|
94
|
-
"lottemartFindStores",
|
|
95
|
-
"lottemartSearchProducts",
|
|
96
94
|
"gs25FindStores",
|
|
97
95
|
"gs25SearchProducts",
|
|
98
96
|
"gs25CheckInventory",
|
|
@@ -300,7 +298,7 @@
|
|
|
300
298
|
"name": "area",
|
|
301
299
|
"in": "query",
|
|
302
300
|
"required": false,
|
|
303
|
-
"description": "
|
|
301
|
+
"description": "지역",
|
|
304
302
|
"schema": {
|
|
305
303
|
"type": "string"
|
|
306
304
|
}
|
|
@@ -336,7 +334,7 @@
|
|
|
336
334
|
"name": "brandVariant",
|
|
337
335
|
"in": "query",
|
|
338
336
|
"required": false,
|
|
339
|
-
"description": "
|
|
337
|
+
"description": "브랜드 변형",
|
|
340
338
|
"schema": {
|
|
341
339
|
"type": "string"
|
|
342
340
|
}
|
|
@@ -383,7 +381,7 @@
|
|
|
383
381
|
"name": "pageLimit",
|
|
384
382
|
"in": "query",
|
|
385
383
|
"required": false,
|
|
386
|
-
"description": "
|
|
384
|
+
"description": "추가 페이지 수",
|
|
387
385
|
"schema": {
|
|
388
386
|
"type": "integer"
|
|
389
387
|
}
|
|
@@ -446,7 +444,7 @@
|
|
|
446
444
|
"name": "storeName",
|
|
447
445
|
"in": "query",
|
|
448
446
|
"required": false,
|
|
449
|
-
"description": "
|
|
447
|
+
"description": "매장명",
|
|
450
448
|
"schema": {
|
|
451
449
|
"type": "string"
|
|
452
450
|
}
|
|
@@ -2084,183 +2082,6 @@
|
|
|
2084
2082
|
}
|
|
2085
2083
|
}
|
|
2086
2084
|
},
|
|
2087
|
-
"LotteMartStore": {
|
|
2088
|
-
"type": "object",
|
|
2089
|
-
"properties": {
|
|
2090
|
-
"area": {
|
|
2091
|
-
"type": "string",
|
|
2092
|
-
"example": "서울"
|
|
2093
|
-
},
|
|
2094
|
-
"storeCode": {
|
|
2095
|
-
"type": "string",
|
|
2096
|
-
"example": "2301"
|
|
2097
|
-
},
|
|
2098
|
-
"storeName": {
|
|
2099
|
-
"type": "string",
|
|
2100
|
-
"example": "강변점"
|
|
2101
|
-
},
|
|
2102
|
-
"brandVariant": {
|
|
2103
|
-
"type": "string",
|
|
2104
|
-
"example": "lottemart"
|
|
2105
|
-
},
|
|
2106
|
-
"address": {
|
|
2107
|
-
"type": "string",
|
|
2108
|
-
"example": "서울 광진구 광나루로 56길 85 테크노마트 B2"
|
|
2109
|
-
},
|
|
2110
|
-
"phone": {
|
|
2111
|
-
"type": "string",
|
|
2112
|
-
"example": "02-3424-2502"
|
|
2113
|
-
},
|
|
2114
|
-
"openTime": {
|
|
2115
|
-
"type": "string",
|
|
2116
|
-
"example": "10:00~23:00"
|
|
2117
|
-
},
|
|
2118
|
-
"closedDays": {
|
|
2119
|
-
"type": "string",
|
|
2120
|
-
"example": "03/08(일), 03/22(일)"
|
|
2121
|
-
},
|
|
2122
|
-
"parkingType": {
|
|
2123
|
-
"type": "string",
|
|
2124
|
-
"example": "유료"
|
|
2125
|
-
},
|
|
2126
|
-
"parkingDetails": {
|
|
2127
|
-
"type": "string",
|
|
2128
|
-
"example": "최초 무료주차 : 1시간"
|
|
2129
|
-
},
|
|
2130
|
-
"detailUrl": {
|
|
2131
|
-
"type": "string",
|
|
2132
|
-
"example": "/mobiledowa/market/detail_shop.asp?werks=2301"
|
|
2133
|
-
},
|
|
2134
|
-
"latitude": {
|
|
2135
|
-
"type": "number",
|
|
2136
|
-
"format": "float",
|
|
2137
|
-
"example": 37.5354
|
|
2138
|
-
},
|
|
2139
|
-
"longitude": {
|
|
2140
|
-
"type": "number",
|
|
2141
|
-
"format": "float",
|
|
2142
|
-
"example": 127.0958
|
|
2143
|
-
},
|
|
2144
|
-
"distanceM": {
|
|
2145
|
-
"type": "number",
|
|
2146
|
-
"nullable": true,
|
|
2147
|
-
"example": 530
|
|
2148
|
-
}
|
|
2149
|
-
}
|
|
2150
|
-
},
|
|
2151
|
-
"LotteMartProduct": {
|
|
2152
|
-
"type": "object",
|
|
2153
|
-
"properties": {
|
|
2154
|
-
"area": {
|
|
2155
|
-
"type": "string",
|
|
2156
|
-
"example": "서울"
|
|
2157
|
-
},
|
|
2158
|
-
"storeCode": {
|
|
2159
|
-
"type": "string",
|
|
2160
|
-
"example": "2301"
|
|
2161
|
-
},
|
|
2162
|
-
"storeName": {
|
|
2163
|
-
"type": "string",
|
|
2164
|
-
"example": "강변점"
|
|
2165
|
-
},
|
|
2166
|
-
"keyword": {
|
|
2167
|
-
"type": "string",
|
|
2168
|
-
"example": "콜라"
|
|
2169
|
-
},
|
|
2170
|
-
"productName": {
|
|
2171
|
-
"type": "string",
|
|
2172
|
-
"example": "코카콜라"
|
|
2173
|
-
},
|
|
2174
|
-
"barcode": {
|
|
2175
|
-
"type": "string",
|
|
2176
|
-
"example": "8801094011307"
|
|
2177
|
-
},
|
|
2178
|
-
"spec": {
|
|
2179
|
-
"type": "string",
|
|
2180
|
-
"example": "1.2L"
|
|
2181
|
-
},
|
|
2182
|
-
"manufacturer": {
|
|
2183
|
-
"type": "string",
|
|
2184
|
-
"example": "코카콜라음료 주식회사"
|
|
2185
|
-
},
|
|
2186
|
-
"price": {
|
|
2187
|
-
"type": "integer",
|
|
2188
|
-
"example": 2980
|
|
2189
|
-
},
|
|
2190
|
-
"stockQuantity": {
|
|
2191
|
-
"type": "integer",
|
|
2192
|
-
"example": 20
|
|
2193
|
-
}
|
|
2194
|
-
}
|
|
2195
|
-
},
|
|
2196
|
-
"LotteMartStoreSearchResponse": {
|
|
2197
|
-
"type": "object",
|
|
2198
|
-
"properties": {
|
|
2199
|
-
"success": {
|
|
2200
|
-
"type": "boolean",
|
|
2201
|
-
"example": true
|
|
2202
|
-
},
|
|
2203
|
-
"data": {
|
|
2204
|
-
"type": "object",
|
|
2205
|
-
"properties": {
|
|
2206
|
-
"stores": {
|
|
2207
|
-
"type": "array",
|
|
2208
|
-
"items": {
|
|
2209
|
-
"$ref": "#/components/schemas/LotteMartStore"
|
|
2210
|
-
}
|
|
2211
|
-
}
|
|
2212
|
-
}
|
|
2213
|
-
},
|
|
2214
|
-
"meta": {
|
|
2215
|
-
"type": "object",
|
|
2216
|
-
"properties": {
|
|
2217
|
-
"total": {
|
|
2218
|
-
"type": "integer"
|
|
2219
|
-
},
|
|
2220
|
-
"page": {
|
|
2221
|
-
"type": "integer"
|
|
2222
|
-
},
|
|
2223
|
-
"pageSize": {
|
|
2224
|
-
"type": "integer"
|
|
2225
|
-
}
|
|
2226
|
-
}
|
|
2227
|
-
}
|
|
2228
|
-
}
|
|
2229
|
-
},
|
|
2230
|
-
"LotteMartProductSearchResponse": {
|
|
2231
|
-
"type": "object",
|
|
2232
|
-
"properties": {
|
|
2233
|
-
"success": {
|
|
2234
|
-
"type": "boolean",
|
|
2235
|
-
"example": true
|
|
2236
|
-
},
|
|
2237
|
-
"data": {
|
|
2238
|
-
"type": "object",
|
|
2239
|
-
"properties": {
|
|
2240
|
-
"products": {
|
|
2241
|
-
"type": "array",
|
|
2242
|
-
"items": {
|
|
2243
|
-
"$ref": "#/components/schemas/LotteMartProduct"
|
|
2244
|
-
}
|
|
2245
|
-
}
|
|
2246
|
-
}
|
|
2247
|
-
},
|
|
2248
|
-
"meta": {
|
|
2249
|
-
"type": "object",
|
|
2250
|
-
"properties": {
|
|
2251
|
-
"total": {
|
|
2252
|
-
"type": "integer"
|
|
2253
|
-
},
|
|
2254
|
-
"page": {
|
|
2255
|
-
"type": "integer"
|
|
2256
|
-
},
|
|
2257
|
-
"pageSize": {
|
|
2258
|
-
"type": "integer"
|
|
2259
|
-
}
|
|
2260
|
-
}
|
|
2261
|
-
}
|
|
2262
|
-
}
|
|
2263
|
-
},
|
|
2264
2085
|
"Gs25Store": {
|
|
2265
2086
|
"type": "object",
|
|
2266
2087
|
"properties": {
|
package/openapi.yaml
CHANGED
|
@@ -77,8 +77,6 @@ paths:
|
|
|
77
77
|
- emart24FindStores
|
|
78
78
|
- emart24SearchProducts
|
|
79
79
|
- emart24CheckInventory
|
|
80
|
-
- lottemartFindStores
|
|
81
|
-
- lottemartSearchProducts
|
|
82
80
|
- gs25FindStores
|
|
83
81
|
- gs25SearchProducts
|
|
84
82
|
- gs25CheckInventory
|
|
@@ -222,7 +220,7 @@ paths:
|
|
|
222
220
|
- name: area
|
|
223
221
|
in: query
|
|
224
222
|
required: false
|
|
225
|
-
description:
|
|
223
|
+
description: 지역
|
|
226
224
|
schema:
|
|
227
225
|
type: string
|
|
228
226
|
- name: area1
|
|
@@ -246,7 +244,7 @@ paths:
|
|
|
246
244
|
- name: brandVariant
|
|
247
245
|
in: query
|
|
248
246
|
required: false
|
|
249
|
-
description:
|
|
247
|
+
description: 브랜드 변형
|
|
250
248
|
schema:
|
|
251
249
|
type: string
|
|
252
250
|
- name: lat
|
|
@@ -278,7 +276,7 @@ paths:
|
|
|
278
276
|
- name: pageLimit
|
|
279
277
|
in: query
|
|
280
278
|
required: false
|
|
281
|
-
description:
|
|
279
|
+
description: 추가 페이지 수
|
|
282
280
|
schema:
|
|
283
281
|
type: integer
|
|
284
282
|
- name: pageSize
|
|
@@ -320,7 +318,7 @@ paths:
|
|
|
320
318
|
- name: storeName
|
|
321
319
|
in: query
|
|
322
320
|
required: false
|
|
323
|
-
description:
|
|
321
|
+
description: 매장명
|
|
324
322
|
schema:
|
|
325
323
|
type: string
|
|
326
324
|
- name: storeKeyword
|
|
@@ -1460,131 +1458,6 @@ components:
|
|
|
1460
1458
|
type: number
|
|
1461
1459
|
nullable: true
|
|
1462
1460
|
example: 120
|
|
1463
|
-
LotteMartStore:
|
|
1464
|
-
type: object
|
|
1465
|
-
properties:
|
|
1466
|
-
area:
|
|
1467
|
-
type: string
|
|
1468
|
-
example: 서울
|
|
1469
|
-
storeCode:
|
|
1470
|
-
type: string
|
|
1471
|
-
example: 2301
|
|
1472
|
-
storeName:
|
|
1473
|
-
type: string
|
|
1474
|
-
example: 강변점
|
|
1475
|
-
brandVariant:
|
|
1476
|
-
type: string
|
|
1477
|
-
example: lottemart
|
|
1478
|
-
address:
|
|
1479
|
-
type: string
|
|
1480
|
-
example: 서울 광진구 광나루로 56길 85 테크노마트 B2
|
|
1481
|
-
phone:
|
|
1482
|
-
type: string
|
|
1483
|
-
example: 02-3424-2502
|
|
1484
|
-
openTime:
|
|
1485
|
-
type: string
|
|
1486
|
-
example: "10:00~23:00"
|
|
1487
|
-
closedDays:
|
|
1488
|
-
type: string
|
|
1489
|
-
example: 03/08(일), 03/22(일)
|
|
1490
|
-
parkingType:
|
|
1491
|
-
type: string
|
|
1492
|
-
example: 유료
|
|
1493
|
-
parkingDetails:
|
|
1494
|
-
type: string
|
|
1495
|
-
example: "최초 무료주차 : 1시간"
|
|
1496
|
-
detailUrl:
|
|
1497
|
-
type: string
|
|
1498
|
-
example: /mobiledowa/market/detail_shop.asp?werks=2301
|
|
1499
|
-
latitude:
|
|
1500
|
-
type: number
|
|
1501
|
-
format: float
|
|
1502
|
-
example: 37.5354
|
|
1503
|
-
longitude:
|
|
1504
|
-
type: number
|
|
1505
|
-
format: float
|
|
1506
|
-
example: 127.0958
|
|
1507
|
-
distanceM:
|
|
1508
|
-
type: number
|
|
1509
|
-
nullable: true
|
|
1510
|
-
example: 530
|
|
1511
|
-
LotteMartProduct:
|
|
1512
|
-
type: object
|
|
1513
|
-
properties:
|
|
1514
|
-
area:
|
|
1515
|
-
type: string
|
|
1516
|
-
example: 서울
|
|
1517
|
-
storeCode:
|
|
1518
|
-
type: string
|
|
1519
|
-
example: 2301
|
|
1520
|
-
storeName:
|
|
1521
|
-
type: string
|
|
1522
|
-
example: 강변점
|
|
1523
|
-
keyword:
|
|
1524
|
-
type: string
|
|
1525
|
-
example: 콜라
|
|
1526
|
-
productName:
|
|
1527
|
-
type: string
|
|
1528
|
-
example: 코카콜라
|
|
1529
|
-
barcode:
|
|
1530
|
-
type: string
|
|
1531
|
-
example: 8801094011307
|
|
1532
|
-
spec:
|
|
1533
|
-
type: string
|
|
1534
|
-
example: 1.2L
|
|
1535
|
-
manufacturer:
|
|
1536
|
-
type: string
|
|
1537
|
-
example: 코카콜라음료 주식회사
|
|
1538
|
-
price:
|
|
1539
|
-
type: integer
|
|
1540
|
-
example: 2980
|
|
1541
|
-
stockQuantity:
|
|
1542
|
-
type: integer
|
|
1543
|
-
example: 20
|
|
1544
|
-
LotteMartStoreSearchResponse:
|
|
1545
|
-
type: object
|
|
1546
|
-
properties:
|
|
1547
|
-
success:
|
|
1548
|
-
type: boolean
|
|
1549
|
-
example: true
|
|
1550
|
-
data:
|
|
1551
|
-
type: object
|
|
1552
|
-
properties:
|
|
1553
|
-
stores:
|
|
1554
|
-
type: array
|
|
1555
|
-
items:
|
|
1556
|
-
$ref: "#/components/schemas/LotteMartStore"
|
|
1557
|
-
meta:
|
|
1558
|
-
type: object
|
|
1559
|
-
properties:
|
|
1560
|
-
total:
|
|
1561
|
-
type: integer
|
|
1562
|
-
page:
|
|
1563
|
-
type: integer
|
|
1564
|
-
pageSize:
|
|
1565
|
-
type: integer
|
|
1566
|
-
LotteMartProductSearchResponse:
|
|
1567
|
-
type: object
|
|
1568
|
-
properties:
|
|
1569
|
-
success:
|
|
1570
|
-
type: boolean
|
|
1571
|
-
example: true
|
|
1572
|
-
data:
|
|
1573
|
-
type: object
|
|
1574
|
-
properties:
|
|
1575
|
-
products:
|
|
1576
|
-
type: array
|
|
1577
|
-
items:
|
|
1578
|
-
$ref: "#/components/schemas/LotteMartProduct"
|
|
1579
|
-
meta:
|
|
1580
|
-
type: object
|
|
1581
|
-
properties:
|
|
1582
|
-
total:
|
|
1583
|
-
type: integer
|
|
1584
|
-
page:
|
|
1585
|
-
type: integer
|
|
1586
|
-
pageSize:
|
|
1587
|
-
type: integer
|
|
1588
1461
|
Gs25Store:
|
|
1589
1462
|
type: object
|
|
1590
1463
|
properties:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "daiso",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.9",
|
|
4
4
|
"description": "Korean retail and cinema MCP server, CLI, and Codex Skill for Daiso, convenience stores, marts, Olive Young, and theaters",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -59,7 +59,6 @@
|
|
|
59
59
|
"cu",
|
|
60
60
|
"seveneleven",
|
|
61
61
|
"emart24",
|
|
62
|
-
"lottemart",
|
|
63
62
|
"cgv",
|
|
64
63
|
"megabox",
|
|
65
64
|
"lottecinema",
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* OpenAPI 컴포넌트 스키마 정의 (롯데마트)
|
|
3
|
-
*/
|
|
4
|
-
export const OPENAPI_LOTTEMART_COMPONENT_SCHEMAS = {
|
|
5
|
-
LotteMartStore: {
|
|
6
|
-
type: 'object',
|
|
7
|
-
properties: {
|
|
8
|
-
area: { type: 'string', example: '서울' },
|
|
9
|
-
storeCode: { type: 'string', example: '2301' },
|
|
10
|
-
storeName: { type: 'string', example: '강변점' },
|
|
11
|
-
brandVariant: { type: 'string', example: 'lottemart' },
|
|
12
|
-
address: { type: 'string', example: '서울 광진구 광나루로 56길 85 테크노마트 B2' },
|
|
13
|
-
phone: { type: 'string', example: '02-3424-2502' },
|
|
14
|
-
openTime: { type: 'string', example: '10:00~23:00' },
|
|
15
|
-
closedDays: { type: 'string', example: '03/08(일), 03/22(일)' },
|
|
16
|
-
parkingType: { type: 'string', example: '유료' },
|
|
17
|
-
parkingDetails: { type: 'string', example: '최초 무료주차 : 1시간' },
|
|
18
|
-
detailUrl: { type: 'string', example: '/mobiledowa/market/detail_shop.asp?werks=2301' },
|
|
19
|
-
latitude: { type: 'number', format: 'float', example: 37.5354 },
|
|
20
|
-
longitude: { type: 'number', format: 'float', example: 127.0958 },
|
|
21
|
-
distanceM: { type: 'number', nullable: true, example: 530 },
|
|
22
|
-
},
|
|
23
|
-
},
|
|
24
|
-
LotteMartProduct: {
|
|
25
|
-
type: 'object',
|
|
26
|
-
properties: {
|
|
27
|
-
area: { type: 'string', example: '서울' },
|
|
28
|
-
storeCode: { type: 'string', example: '2301' },
|
|
29
|
-
storeName: { type: 'string', example: '강변점' },
|
|
30
|
-
keyword: { type: 'string', example: '콜라' },
|
|
31
|
-
productName: { type: 'string', example: '코카콜라' },
|
|
32
|
-
barcode: { type: 'string', example: '8801094011307' },
|
|
33
|
-
spec: { type: 'string', example: '1.2L' },
|
|
34
|
-
manufacturer: { type: 'string', example: '코카콜라음료 주식회사' },
|
|
35
|
-
price: { type: 'integer', example: 2980 },
|
|
36
|
-
stockQuantity: { type: 'integer', example: 20 },
|
|
37
|
-
},
|
|
38
|
-
},
|
|
39
|
-
LotteMartStoreSearchResponse: {
|
|
40
|
-
type: 'object',
|
|
41
|
-
properties: {
|
|
42
|
-
success: { type: 'boolean', example: true },
|
|
43
|
-
data: {
|
|
44
|
-
type: 'object',
|
|
45
|
-
properties: {
|
|
46
|
-
stores: {
|
|
47
|
-
type: 'array',
|
|
48
|
-
items: { $ref: '#/components/schemas/LotteMartStore' },
|
|
49
|
-
},
|
|
50
|
-
},
|
|
51
|
-
},
|
|
52
|
-
meta: {
|
|
53
|
-
type: 'object',
|
|
54
|
-
properties: {
|
|
55
|
-
total: { type: 'integer' },
|
|
56
|
-
page: { type: 'integer' },
|
|
57
|
-
pageSize: { type: 'integer' },
|
|
58
|
-
},
|
|
59
|
-
},
|
|
60
|
-
},
|
|
61
|
-
},
|
|
62
|
-
LotteMartProductSearchResponse: {
|
|
63
|
-
type: 'object',
|
|
64
|
-
properties: {
|
|
65
|
-
success: { type: 'boolean', example: true },
|
|
66
|
-
data: {
|
|
67
|
-
type: 'object',
|
|
68
|
-
properties: {
|
|
69
|
-
products: {
|
|
70
|
-
type: 'array',
|
|
71
|
-
items: { $ref: '#/components/schemas/LotteMartProduct' },
|
|
72
|
-
},
|
|
73
|
-
},
|
|
74
|
-
},
|
|
75
|
-
meta: {
|
|
76
|
-
type: 'object',
|
|
77
|
-
properties: {
|
|
78
|
-
total: { type: 'integer' },
|
|
79
|
-
page: { type: 'integer' },
|
|
80
|
-
pageSize: { type: 'integer' },
|
|
81
|
-
},
|
|
82
|
-
},
|
|
83
|
-
},
|
|
84
|
-
},
|
|
85
|
-
};
|
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* OpenAPI 경로 정의 (롯데마트)
|
|
3
|
-
*/
|
|
4
|
-
export const OPENAPI_PATHS_LOTTEMART = {
|
|
5
|
-
'/api/lottemart/stores': {
|
|
6
|
-
get: {
|
|
7
|
-
operationId: 'lottemartFindStores',
|
|
8
|
-
summary: '롯데마트 매장 검색',
|
|
9
|
-
description: '지역/키워드 조건으로 롯데마트 계열 매장을 조회합니다.',
|
|
10
|
-
parameters: [
|
|
11
|
-
{
|
|
12
|
-
name: 'keyword',
|
|
13
|
-
in: 'query',
|
|
14
|
-
required: false,
|
|
15
|
-
description: '매장명 또는 주소 키워드',
|
|
16
|
-
schema: { type: 'string' },
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
name: 'area',
|
|
20
|
-
in: 'query',
|
|
21
|
-
required: false,
|
|
22
|
-
description: '지역 (예: 서울, 경기, 제주)',
|
|
23
|
-
schema: { type: 'string' },
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
name: 'brandVariant',
|
|
27
|
-
in: 'query',
|
|
28
|
-
required: false,
|
|
29
|
-
description: '브랜드 변형 필터',
|
|
30
|
-
schema: {
|
|
31
|
-
type: 'string',
|
|
32
|
-
enum: [
|
|
33
|
-
'lottemart',
|
|
34
|
-
'toysrus',
|
|
35
|
-
'max',
|
|
36
|
-
'bottlebunker',
|
|
37
|
-
'mealguru',
|
|
38
|
-
'grandgrocery',
|
|
39
|
-
'other',
|
|
40
|
-
],
|
|
41
|
-
},
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
name: 'lat',
|
|
45
|
-
in: 'query',
|
|
46
|
-
required: false,
|
|
47
|
-
description: '위도',
|
|
48
|
-
schema: { type: 'number', format: 'float' },
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
name: 'lng',
|
|
52
|
-
in: 'query',
|
|
53
|
-
required: false,
|
|
54
|
-
description: '경도',
|
|
55
|
-
schema: { type: 'number', format: 'float' },
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
name: 'limit',
|
|
59
|
-
in: 'query',
|
|
60
|
-
required: false,
|
|
61
|
-
description: '최대 결과 수',
|
|
62
|
-
schema: { type: 'integer', default: 20, minimum: 1, maximum: 100 },
|
|
63
|
-
},
|
|
64
|
-
],
|
|
65
|
-
responses: {
|
|
66
|
-
'200': {
|
|
67
|
-
description: '검색 성공',
|
|
68
|
-
content: {
|
|
69
|
-
'application/json': {
|
|
70
|
-
schema: { $ref: '#/components/schemas/LotteMartStoreSearchResponse' },
|
|
71
|
-
},
|
|
72
|
-
},
|
|
73
|
-
},
|
|
74
|
-
},
|
|
75
|
-
},
|
|
76
|
-
},
|
|
77
|
-
'/api/lottemart/products': {
|
|
78
|
-
get: {
|
|
79
|
-
operationId: 'lottemartSearchProducts',
|
|
80
|
-
summary: '롯데마트 상품 검색',
|
|
81
|
-
description: '특정 롯데마트 매장을 기준으로 상품 가격과 재고를 조회합니다.',
|
|
82
|
-
parameters: [
|
|
83
|
-
{
|
|
84
|
-
name: 'keyword',
|
|
85
|
-
in: 'query',
|
|
86
|
-
required: true,
|
|
87
|
-
description: '상품 검색어',
|
|
88
|
-
schema: { type: 'string' },
|
|
89
|
-
example: '콜라',
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
name: 'storeCode',
|
|
93
|
-
in: 'query',
|
|
94
|
-
required: false,
|
|
95
|
-
description: '매장 코드',
|
|
96
|
-
schema: { type: 'string' },
|
|
97
|
-
example: '2301',
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
name: 'storeName',
|
|
101
|
-
in: 'query',
|
|
102
|
-
required: false,
|
|
103
|
-
description: '매장명',
|
|
104
|
-
schema: { type: 'string' },
|
|
105
|
-
example: '강변점',
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
name: 'area',
|
|
109
|
-
in: 'query',
|
|
110
|
-
required: false,
|
|
111
|
-
description: '지역 (storeName 해석 보조용)',
|
|
112
|
-
schema: { type: 'string' },
|
|
113
|
-
example: '서울',
|
|
114
|
-
},
|
|
115
|
-
{
|
|
116
|
-
name: 'pageLimit',
|
|
117
|
-
in: 'query',
|
|
118
|
-
required: false,
|
|
119
|
-
description: '추가 조회할 최대 페이지 수',
|
|
120
|
-
schema: { type: 'integer', default: 3, minimum: 1, maximum: 20 },
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
name: 'source',
|
|
124
|
-
in: 'query',
|
|
125
|
-
required: false,
|
|
126
|
-
description: '상품 검색 경로',
|
|
127
|
-
schema: { type: 'string', enum: ['auto', 'legacy', 'zetta'], default: 'auto' },
|
|
128
|
-
},
|
|
129
|
-
{
|
|
130
|
-
name: 'timeoutMs',
|
|
131
|
-
in: 'query',
|
|
132
|
-
required: false,
|
|
133
|
-
description: '요청 제한 시간(ms)',
|
|
134
|
-
schema: { type: 'integer', default: 15000, minimum: 1 },
|
|
135
|
-
},
|
|
136
|
-
],
|
|
137
|
-
responses: {
|
|
138
|
-
'200': {
|
|
139
|
-
description: '검색 성공',
|
|
140
|
-
content: {
|
|
141
|
-
'application/json': {
|
|
142
|
-
schema: { $ref: '#/components/schemas/LotteMartProductSearchResponse' },
|
|
143
|
-
},
|
|
144
|
-
},
|
|
145
|
-
},
|
|
146
|
-
'400': {
|
|
147
|
-
description: '잘못된 요청',
|
|
148
|
-
content: {
|
|
149
|
-
'application/json': {
|
|
150
|
-
schema: { $ref: '#/components/schemas/ErrorResponse' },
|
|
151
|
-
},
|
|
152
|
-
},
|
|
153
|
-
},
|
|
154
|
-
},
|
|
155
|
-
},
|
|
156
|
-
},
|
|
157
|
-
};
|