package com.eactive.ext.kjb.common; import lombok.Data; import org.hibernate.validator.constraints.NotEmpty; import javax.validation.constraints.Max; import javax.validation.constraints.Min; import javax.validation.constraints.Pattern; @Data public class KjbProperty { @KjbPropertyValue(key = "kjb.eai.batch.url") @Pattern(regexp = "^(https?://[^\\s/$.?#][^\\s]*)|\\s*$", message = "kjb.eai_batch.url 는 유효한 URL 형식이거나 공백이어야 합니다. 예: http://example.com/api") private String eaiBatchUrl; @KjbPropertyValue(key = "kjb.eai.batch.connection_timeout", defaultValue = "5") @Min(1) @Max(10) private int eaiBatchConnectionTimeout = 5; @KjbPropertyValue(key = "kjb.eai.batch.response_timeout", defaultValue = "5") @Min(1) @Max(30) private int eaiBatchResponseTimeout = 5; @KjbPropertyValue(key = "kjb.eai.batch.timeout", defaultValue = "10") @Min(1) @Max(30) private int eaiBatchTimeout = 10; @KjbPropertyValue(key = "kjb.eai.batch.charset", defaultValue = "euc-kr") @NotEmpty private String eaiBatchCharset = "euc-kr"; @KjbPropertyValue(key = "kjb.ums.eai_batch.send_dir") @NotEmpty(message = "kjb.ums.eai_batch.send_dir 는 필수값입니다.") private String umsEaiBatchSendDir; @KjbPropertyValue(key = "kjb.ums.eai_batch.backup_dir") @NotEmpty(message = "kjb.ums.eai_batch.backup_dir 는 필수값입니다.") private String umsEaiBatchBackupDir; @KjbPropertyValue(key = "kjb.ums.eai_batch.error_dir") @NotEmpty(message = "kjb.ums.eai_batch.error_dir 는 필수값입니다.") private String umsEaiBatchErrorDir; @KjbPropertyValue(key = "kjb.ums.eai_batch.interface_id") @Pattern(regexp = "^[a-zA-Z0-9]{13}$", message = "kjb.ums.eai_batch.interface_id 는 12자리 영문대소문자 및 숫자 조합이어야 합니다.") private String umsEaiBatchInterfaceId; @KjbPropertyValue(key = "kjb.ums.eai_batch.retention_date", defaultValue = "60") @Min(1) @Max(365) private int umsEaiBatchRetentionDate = 60; @KjbPropertyValue(key = "kjb.ums.host") @Pattern(regexp = "^(https?://[^\\s/$.?#][^\\s]*)|\\s*$", message = "kjb.ums.host_url 는 유효한 URL 형식이거나 공백이어야 합니다. 예: http://example.com/api") private String umsHostUrl; @KjbPropertyValue(key = "kjb.ums.api_key") @Pattern(regexp = "^[a-zA-Z0-9_-]{36}$", message = "kjb.ums.api_key 입력 형식이 맞지 않습니다.") private String umsApiKey; @KjbPropertyValue(key = "kjb.ums.connection_timeout", defaultValue = "5") @Min(1) @Max(10) private int umsConnectionTimeout = 5; @KjbPropertyValue(key = "kjb.ums.response_timeout", defaultValue = "5") @Min(1) @Max(30) private int umsResponseTimeout = 5; @KjbPropertyValue(key = "kjb.ums.timeout", defaultValue = "10") @Min(1) @Max(30) private int umsTimeout = 10; @KjbPropertyValue(key = "kjb.obp.url") @Pattern(regexp = "^(https?://[^\\s/$.?#][^\\s]*)|\\s*$", message = "kjb.obp.url 는 유효한 URL 형식이거나 공백이어야 합니다. 예: http://example.com/api") private String obpUrl; @KjbPropertyValue(key = "kjb.obp.trust_system.key", defaultValue = "x-obp-trust-system") @NotEmpty private String obpTrustSystemKey = "x-obp-trust-system"; @KjbPropertyValue(key = "kjb.obp.trust_system.value", defaultValue = "APIMPT-0002-QVBJTVBULTAwMDI=") @NotEmpty private String obpTrustSystemValue = "APIMPT-0002-QVBJTVBULTAwMDI="; @KjbPropertyValue(key = "kjb.obp.partner_code.key", defaultValue = "x-obp-partnercode") @NotEmpty private String obpPartnerCodeKey = "x-obp-partnercode"; @KjbPropertyValue(key = "kjb.obp.partner_code.value", defaultValue = "100001-01") @NotEmpty private String obpPartnerCodeValue = "100001-01"; @KjbPropertyValue(key = "kjb.obp.connection_timeout", defaultValue = "5") @Min(1) @Max(10) private int obpConnectionTimeout = 5; @KjbPropertyValue(key = "kjb.obp.response_timeout", defaultValue = "5") @Min(1) @Max(30) private int obpResponseTimeout = 5; @KjbPropertyValue(key = "kjb.obp.timeout", defaultValue = "10") @Min(1) @Max(30) private int obpTimeout = 10; @KjbPropertyValue(key = "kjb.obp.url.commission", defaultValue = "/api/billing/billing/findBillingForCondition") @NotEmpty private String obpUrlCommission = "/api/billing/billing/findBillingForCondition"; @KjbPropertyValue(key = "kjb.obp.url.commission_print", defaultValue = "/api/billing/billing/findBillingForCondition/print") @NotEmpty private String obpUrlCommissionPrint = "/api/billing/billing/findBillingForCondition/print"; @KjbPropertyValue(key = "kjb.obp.url.organization_fmt", defaultValue = "/api/customer/findCustomerByBusinessManRegistrationNo/%s") @NotEmpty private String obpUrlOrganizationFmt = "/api/customer/findCustomerByBusinessManRegistrationNo/%s"; }