CustomerJpaEntity.java
package com.github.jenkaby.bikerental.customer.infrastructure.persistence.entity;
import com.github.f4b6a3.uuid.UuidCreator;
import jakarta.persistence.*;
import lombok.*;
import java.time.Instant;
import java.time.LocalDate;
import java.util.UUID;
@ToString
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "customers")
public class CustomerJpaEntity {
@Id
private UUID id;
@Column(nullable = false, unique = true, length = 20)
private String phone;
@Column(name = "first_name", nullable = false, length = 100)
private String firstName;
@Column(name = "last_name", nullable = false, length = 100)
private String lastName;
@Column(length = 255)
private String email;
@Column(name = "birth_date")
private LocalDate birthDate;
@Column(columnDefinition = "TEXT")
private String comments;
@Column(name = "created_at", nullable = false, updatable = false)
private Instant createdAt = Instant.now();
@PrePersist
public void prePersist() {
if (this.id == null) {
this.id = UuidCreator.getTimeOrderedEpoch();
}
}
}