package com.qmth.themis.admin.config;

import com.qmth.themis.business.domain.*;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @Description: 数据字典
 * @Param:
 * @return:
 * @Author: wangliang
 * @Date: 2020/4/10
 */
@Configuration
public class DictionaryConfig {

    /**
     * 无需权限控制的url
     *
     * @return
     */
    @Bean
    @ConfigurationProperties(prefix = "no.auth", ignoreUnknownFields = false)
    public AuthNoUrlDomain authNoUrlDomain() {
        return new AuthNoUrlDomain();
    }

    /**
     * 模块前缀
     *
     * @return
     */
    @Bean
    @ConfigurationProperties(prefix = "prefix.url", ignoreUnknownFields = false)
    public PrefixUrlDomain prefixUrlDomain() {
        return new PrefixUrlDomain();
    }

    /**
     * 系统url
     *
     * @return
     */
    @Bean
    @ConfigurationProperties(prefix = "common.system", ignoreUnknownFields = false)
    public SystemUrlDomain systemUrlDomain() {
        return new SystemUrlDomain();
    }

    /**
     * 系统配置
     *
     * @return
     */
    @Bean
    @ConfigurationProperties(prefix = "sys.config", ignoreUnknownFields = false)
    public SysDomain sysDomain() {
        return new SysDomain();
    }

    /**
     * 阿里云oss配置
     *
     * @return
     */
    @Bean
    @ConfigurationProperties(prefix = "aliyun.oss", ignoreUnknownFields = false)
    public AliYunOssDomain aliYunOssDomain() {
        return new AliYunOssDomain();
    }

    /**
     * 腾讯云配置
     *
     * @return
     */
    @Bean
    @ConfigurationProperties(prefix = "tencentyun.sdk", ignoreUnknownFields = false)
    public TencentYunDomain tencentYunDomain() {
        return new TencentYunDomain();
    }

    /**
     * 微信配置
     *
     * @return
     */
    @Bean
    @ConfigurationProperties(prefix = "wxapp.upload", ignoreUnknownFields = false)
    public WxappDomain wxappDomain() {
        return new WxappDomain();
    }

    /**
     * mq配置
     *
     * @return
     */
    @Bean
    @ConfigurationProperties(prefix = "mq.config", ignoreUnknownFields = false)
    public MqConfigDomain mqConfigDomain() {
        return new MqConfigDomain();
    }

    /**
     * 监控配置
     *
     * @return
     */
    @Bean
    @ConfigurationProperties(prefix = "monitor.config", ignoreUnknownFields = false)
    public MonitorDomain monitorDomain() {
        return new MonitorDomain();
    }

    /**
     * 同步云阅卷配置
     *
     * @return
     */
    @Bean
    @ConfigurationProperties(prefix = "cloud.mark", ignoreUnknownFields = false)
    public CloudMarkDomain cloudMarkDomain() {
        return new CloudMarkDomain();
    }
}
