- Create V5__create_orders_table.sql migration with orders table - UUID primary key, user_id FK to users, status CHECK constraint - Indexes on user_id and status columns - Add OrderStatus enum (PENDING_PAYMENT, PAID, LOOKUP_STARTED, SENT, DELIVERED, FAILED) - Add OrderStatusConverter for JPA VARCHAR persistence - Create Order entity with fields: id, userId, plate, template, letterText, status, amountPaid, trackingId, timestamps - Create OrderRepository with findByUserIdOrderByCreatedAtDesc and findByStatus queries - Create OrderService with createOrder (normalizes plate, sets PENDING_PAYMENT), getOrdersByUserId, getOrderById - Add OrderNotFoundException with 404 handler in GlobalExceptionHandler - Write OrderServiceTest with 8 unit tests covering status, UUID generation, plate normalization, and error handling
20 lines
384 B
Java
20 lines
384 B
Java
package se.bilhalsning.entity;
|
|
|
|
public enum OrderStatus {
|
|
PENDING_PAYMENT("pending_payment"),
|
|
PAID("paid"),
|
|
LOOKUP_STARTED("lookup_started"),
|
|
SENT("sent"),
|
|
DELIVERED("delivered"),
|
|
FAILED("failed");
|
|
|
|
private final String value;
|
|
|
|
OrderStatus(String value) {
|
|
this.value = value;
|
|
}
|
|
|
|
public String getValue() {
|
|
return value;
|
|
}
|
|
}
|