package org.xyzh.common.utils.id;

import java.util.UUID;
import java.util.concurrent.atomic.AtomicLong;

/**
 * @description ID生成工具类
 * @filename IdUtil.java
 * @author yslg
 * @copyright xyzh
 * @since 2025-12-17
 */
public class IdUtil {

    private static final AtomicLong SEQUENCE = new AtomicLong(0);

    /**
     * 生成流水号（UUID格式，无横线）
     */
    public static String getOptsn() {
        return "optsn"+UUID.randomUUID().toString().replaceAll("-", "");
    }

    /**
     * 生成雪花ID（简化实现，使用时间戳+序列号）
     */
    public static String getSnowflakeId() {
        long timestamp = System.currentTimeMillis();
        long seq = SEQUENCE.incrementAndGet() % 10000;
        return String.valueOf(timestamp) + String.format("%04d", seq);
    }

    /**
     * 生成UUID
     */
    public static String generateUUID() {
        return UUID.randomUUID().toString().replaceAll("-", "");
    }

    /**
     * 生成ID
     */
    public static String generateID() {
        return UUID.randomUUID().toString().replaceAll("-", "");
    }
}
