Project

General

Profile

기능(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> 

Back

Add picture from clipboard (Maximum size: 50 MB)