package kr.xit.core.spring.config;

import org.springdoc.core.GroupedOpenApi;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * <pre>
 * description : Springdoc(swagger) 설정
 *               설정내용이 상이한 경우 동일한 파일로 재정의 하거나 상속받아 사용
 * packageName : kr.xit.core.spring.config
 * fileName    : SpringDocsConfig
 * author      : julim
 * date        : 2023-04-28
 * ======================================================================
 * 변경일         변경자        변경 내용
 * ----------------------------------------------------------------------
 * 2023-04-28    julim       최초 생성
 *
 * </pre>
 */
@ConditionalOnProperty(value = "springdoc.swagger-ui.enabled", havingValue = "true", matchIfMissing = false)
@Configuration
public class SpringDocsApiConfig {

    @Bean
    public GroupedOpenApi kakaopayEltrcDocBatch() {
        return GroupedOpenApi.builder()
                .group("1. 전자고지 통합발송 연계 Batch WEB")
                .pathsToMatch(
                        "/batch/v1/**"
                )
                .build();
    }

    @Bean
    public GroupedOpenApi bizDoc() {
        return GroupedOpenApi.builder()
            .group("2. 전자고지 발송 연계 Batch API")
            .pathsToMatch(
                "/batch/ens/**"
            )
            .build();
    }

    @Bean
    public GroupedOpenApi cmmDoc() {
        return GroupedOpenApi.builder()
            .group("5. Batch 관리(공통) API")
            .pathsToMatch(
                "/batch/cmm/**"
            )
            .build();
    }

}
