OrderEntity.java
package com.github.danielemasone.orderevents.infrastructure.persistence;
import com.github.danielemasone.orderevents.domain.OrderStatus;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import java.math.BigDecimal;
import java.time.Instant;
import java.util.UUID;
/**
* JPA representation of an order row stored in PostgreSQL.
*/
@Entity
@Table(name = "orders")
public class OrderEntity {
@Id
private UUID id;
@Column(name = "customer_id", nullable = false, length = 120)
private String customerId;
@Column(nullable = false, precision = 19, scale = 2)
private BigDecimal amount;
@Enumerated(EnumType.STRING)
@Column(nullable = false, length = 32)
private OrderStatus status;
@Column(name = "created_at", nullable = false)
private Instant createdAt;
public OrderEntity() {
}
public UUID getId() {
return id;
}
public void setId(UUID id) {
this.id = id;
}
public String getCustomerId() {
return customerId;
}
public void setCustomerId(String customerId) {
this.customerId = customerId;
}
public BigDecimal getAmount() {
return amount;
}
public void setAmount(BigDecimal amount) {
this.amount = amount;
}
public OrderStatus getStatus() {
return status;
}
public void setStatus(OrderStatus status) {
this.status = status;
}
public Instant getCreatedAt() {
return createdAt;
}
public void setCreatedAt(Instant createdAt) {
this.createdAt = createdAt;
}
}