package com.storlead.framework.mybatis.datasource;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

import java.util.ArrayList;
import java.util.List;

/**
 * 按业务包前缀绑定默认数据源；未命中或未配置时走 dynamic-datasource 的 primary。
 * 与 {@link ModuleDefaultDataSourceAspect} 配合使用，方法/类上的 {@code @DS} 优先生效。
 */
@Data
@ConfigurationProperties(prefix = "storlead.datasource")
public class ModuleDefaultDataSourceProperties {

    /**
     * 是否启用模块默认数据源切面
     */
    private boolean moduleDefaultEnabled = true;

    /**
     * 模块默认数据源规则（最长包前缀匹配）
     */
    private List<ModuleDefaultRule> moduleDefaults = new ArrayList<>();

    @Data
    public static class ModuleDefaultRule {

        /**
         * 包前缀，如 com.storlead.sales.service
         */
        private List<String> packages = new ArrayList<>();

        /**
         * 数据源 key，与 spring.datasource.dynamic.datasource 下的名称一致
         */
        private String datasource;
    }
}
