기능(Feature) #480
Updated by John Lee 9 months ago
Implement backend API to create coupon budget, we can use postman to manually create a budget instead of UI now. This API belong to admin site and it will be use for UI in the future.
At least one COUPON_SHARE is required
*Schema of coupon budget*
COUPON_BUDGET_SEQ bigint NOT NULL AUTO_INCREMENT,
SALES_COUNTRY_CODE varchar(9) NOT NULL,
BUDGET_NAME_EN varchar(100) NOT NULL,
BUDGET_NAME_KO varchar(100) NOT NULL,
BUDGET_DESC varchar(1000) DEFAULT NULL,
IN_CHARGE_DEPT_CODE varchar(10) NOT NULL,
SUPPORT_SALES_COMP_CODE_LIST varchar(1000) DEFAULT NULL COMMENT 'Issue for list specific Sellers',
ITEM_CATEGORY_CODE varchar(10) DEFAULT NULL COMMENT 'Reserved Item Category Code: BasicBS003',
COUPON_SHARED_TRADER_COMP_CODE1 int DEFAULT NULL,
COUPON_SHARE_RATE_OR_AMOUNT1 varchar(1) DEFAULT NULL,
COUPON_SHARE_APPLIED_VALUE2 decimal(15, 2) DEFAULT NULL,
COUPON_SHARED_TRADER_COMP_CODE2 int DEFAULT NULL,
COUPON_SHARE_RATE_OR_AMOUNT2 varchar(1) DEFAULT NULL,
COUPON_SHARE_APPLIED_VALUE1 decimal(15, 2) DEFAULT NULL,
TOTAL_BUDGET_AMOUNT decimal(15, 2) NOT NULL,
COUPON_RATE_OR_AMOUNT varchar(1) NOT NULL,
COUPON_AMOUNT decimal(15, 2) NOT NULL,
MIN_ORDER_AMOUNT decimal(15, 2) NOT NULL COMMENT 'Minimum order value to apply',
DRAFT_CODE varchar(20) DEFAULT NULL COMMENT 'Prefix of coupon code',
USE_YN varchar(1) NOT NULL DEFAULT 'N',
ISSUE_FROM_DATETIME date NOT NULL,
ISSUE_TO_DATETIME date NOT NULL,
USE_FROM_DATE date NOT NULL,
USE_TO_DATE date NOT NULL,
MAX_COUPON_COUNT smallint NOT NULL,
MAX_USAGE_PER_COUPON smallint NOT NULL DEFAULT 1,
FIRST_INSERT_UNO bigint NOT NULL,
FIRST_INSERT_DATETIME datetime NOT NULL,
LAST_UPDATE_UNO bigint NOT NULL,
LAST_UPDATE_DATETIME datetime NOT NULL,
PRIMARY KEY (COUPON_BUDGET_SEQ)
Script insert api schema
<pre><code class="c">
INSERT INTO BS_API_SERVICE_CODE (API_SERVICE_URL, METHOD_NAME, OWNER_COMP_CODE, API_SERVICE_NAME_EN, API_SERVICE_NAME_KO, SCHEMA_FILE_NAME_RQ, SCHEMA_FILE_NAME_RS, VENDOR_SERVICE_NAME, API_SERVICE_DESC, SAMPLE_REQUEST_MESSAGE, SAMPLE_RESPONSE_MESSAGE, OPEN_API_YN, OUTSIDE_INTERFACE_YN, LOG_SAVE_YN, IGNORE_SCHEMA_YN, CONTROL_REMARK, USE_YN, FIRST_INSERT_UNO, FIRST_INSERT_DATETIME, LAST_UPDATE_UNO, LAST_UPDATE_DATETIME) VALUES
('/booking/hotel/hana/generate-coupon-item', 'POST', 110000, 'generate coupon item', 'generate coupon item', '/booking/hotel/hana/generate_coupon_item/generate_coupon_item_rq.json', '/booking/hotel/hana/generate_coupon_item/generate_coupon_item_rs.json', '', '', '', '', 'N', 'N', 'N', 'N', '', 'Y', 10000, '2025-06-03 18:36:35', 10000, '2025-06-03 18:36:35');
INSERT INTO BS_API_SERVICE_CODE (API_SERVICE_URL, METHOD_NAME, OWNER_COMP_CODE, API_SERVICE_NAME_EN, API_SERVICE_NAME_KO, SCHEMA_FILE_NAME_RQ, SCHEMA_FILE_NAME_RS, VENDOR_SERVICE_NAME, API_SERVICE_DESC, SAMPLE_REQUEST_MESSAGE, SAMPLE_RESPONSE_MESSAGE, OPEN_API_YN, OUTSIDE_INTERFACE_YN, LOG_SAVE_YN, IGNORE_SCHEMA_YN, CONTROL_REMARK, USE_YN, FIRST_INSERT_UNO, FIRST_INSERT_DATETIME, LAST_UPDATE_UNO, LAST_UPDATE_DATETIME) VALUES
('/booking/hotel/hana/coupon-budget', 'PUT', 110000, 'post coupon budget', 'post coupon budget', '/booking/hotel/hana/post_coupon_budget/post_coupon_budget_rq.json', '/booking/hotel/hana/post_coupon_budget/post_coupon_budget_rs.json', '', '', '', '', 'N', 'N', 'N', 'N', '', 'Y', 10000, '2025-06-03 18:36:35', 10000, '2025-06-03 18:36:35');
</code></pre>
Curl
<pre><code class="c">
curl --location 'https://dev-admapi.ohmyhotel.com/booking/hotel/hana/coupon-budget' \
--header 'accept: application/json, text/plain, */*' \
--header 'accept-language: en-US,en;q=0.9,ja;q=0.8,fr-FR;q=0.7,fr;q=0.6,en-GB;q=0.5,vi;q=0.4,vi-VN;q=0.3' \
--header 'content-type: application/json' \
--header 'origin: https://dev-adm.ohmyhotel.com' \
--header 'priority: u=1, i' \
--header 'referer: https://dev-adm.ohmyhotel.com/' \
--header 'sec-ch-ua: "Chromium";v="136", "Google Chrome";v="136", "Not.A/Brand";v="99"' \
--header 'sec-ch-ua-mobile: ?0' \
--header 'sec-ch-ua-platform: "Windows"' \
--header 'sec-fetch-dest: empty' \
--header 'sec-fetch-mode: cors' \
--header 'sec-fetch-site: same-site' \
--header 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36' \
--header 'usertoken: affiliateTest' \
--data '{
"language": "EN",
"country": "KR",
"stationTypeCode": "STN03",
"currency": "KRW",
"condition": {
"salesCountryCode": "KR",
"budgetNameEn": "Summer Discount 2025",
"budgetNameKo": "2025 여름 할인",
"budgetDesc": "Discount budget for summer sales in Korea",
"inChargeDeptCode": "D100",
"supportSalesCompCodeList": "200006",
"itemCategoryCode": "BS003",
"couponSharedTraderCompCode1": 200009,
"couponShareAppliedValue1": 5000.00,
"couponSharedTraderCompCode2": 110000,
"couponShareAppliedValue2": 5000.00,
"totalBudgetAmount": 0.01,
"couponRateOrAmount": "A",
"couponAmount": 10000.00,
"minOrderAmount": 0.01,
"draftCode": "DRAFT_",
"useYn": false,
"issueFromDatetime": "2025-06-13",
"issueToDatetime": "2025-08-15",
"maxCouponCount": 1000,
"maxUsagePerCoupon": 1
}
}'
</code></pre>