package com.jeesharp.business.modules.mall.generator;

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

/**
 * 商品编码生成器
 * 职责：生成商品编码等业务编码
 */
@Slf4j
@Component
public class MallSpuCodeGenerator {

    /**
     * 生成商品SPU编码
     * 编码规则：SPU + 时间戳 + 随机数
     */
    public String generateSpuCode() {
        String code = "SPU" + System.currentTimeMillis() + (int)(Math.random() * 1000);
        log.debug("生成商品SPU编码: {}", code);
        return code;
    }

    /**
     * 生成商品SKU编码
     * 编码规则：SKU + SPU编码后4位 + 时间戳后4位 + 随机数
     */
    public String generateSkuCode(String spuCode) {
        String spuSuffix = spuCode.length() > 4 ? spuCode.substring(spuCode.length() - 4) : spuCode;
        String timeSuffix = String.valueOf(System.currentTimeMillis()).substring(9);
        String code = "SKU" + spuSuffix + timeSuffix + (int)(Math.random() * 100);
        log.debug("生成商品SKU编码: {}, 基于SPU: {}", code, spuCode);
        return code;
    }
}