diff --git a/src/main/java/kr/co/fastcampus/yanabada/common/utils/OrderCodeGenerator.java b/src/main/java/kr/co/fastcampus/yanabada/common/utils/OrderCodeGenerator.java new file mode 100644 index 00000000..0f72b883 --- /dev/null +++ b/src/main/java/kr/co/fastcampus/yanabada/common/utils/OrderCodeGenerator.java @@ -0,0 +1,28 @@ +package kr.co.fastcampus.yanabada.common.utils; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.UUID; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; + +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class OrderCodeGenerator { + + private static final int RANDOM_CODE_LENGTH = 12; + private static final String DATE_PATTERN = "yyMMdd"; + + public static String generate() { + return generateDateCode(LocalDate.now()) + generateRandomCode(RANDOM_CODE_LENGTH); + } + + private static String generateDateCode(LocalDate date) { + return date.format(DateTimeFormatter.ofPattern(DATE_PATTERN)); + } + + private static String generateRandomCode(int length) { + String uuid = UUID.randomUUID().toString(); + + return uuid.substring(uuid.length() - length); + } +}