package com.gyee.runeconomy.config;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MybatisPlusConfig {

    /**
     * 新版插件配置（包含分页和乐观锁）
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        PaginationInnerInterceptor pagination = new PaginationInnerInterceptor(DbType.POSTGRE_SQL);
        pagination.setOptimizeJoin(false);  // 修复PG分页语法冲突
        interceptor.addInnerInterceptor(pagination);
        return interceptor;
    }

    /**
     * 自定义主键生成器（保持原逻辑）
     */
//
//    @Bean
//    public IdentifierGenerator idGenerator() {
//        return new IdentifierGenerator() {
//            @Override
//            public Number nextId(Object entity) {
//                // 返回 null，因为我们使用字符串 ID
//                return null;
//            }
//
//            @Override
//            public String nextUUID(Object entity) {
//                // 使用 Hutool 的 Snowflake 工具生成长整型 ID，并转换为字符串
//                return String.valueOf(IdUtil.getSnowflake(1, 1).nextId());
//            }
//        };
//    }
}