73 lines
2.5 KiB
Java
73 lines
2.5 KiB
Java
package com.caspos.domain;
|
|
|
|
import jakarta.persistence.*;
|
|
import java.time.Instant;
|
|
import java.time.OffsetDateTime;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.UUID;
|
|
|
|
@Entity
|
|
@Table(name = "reservations")
|
|
public class Reservation {
|
|
|
|
public enum Status {
|
|
PENDING, CONFIRMED, ARRIVED, FINISHED, NO_SHOW, CANCELLED
|
|
}
|
|
|
|
@Id
|
|
@GeneratedValue(strategy = GenerationType.UUID)
|
|
private UUID id;
|
|
|
|
@ManyToOne(fetch = FetchType.LAZY)
|
|
@JoinColumn(name = "guest_id")
|
|
private Guest guest;
|
|
|
|
@ManyToMany
|
|
@JoinTable(
|
|
name = "reservation_table_assignments",
|
|
joinColumns = @JoinColumn(name = "reservation_id"),
|
|
inverseJoinColumns = @JoinColumn(name = "table_id")
|
|
)
|
|
private List<RestaurantTable> tables = new ArrayList<>();
|
|
|
|
@Column(name = "start_time", nullable = false)
|
|
private OffsetDateTime startTime;
|
|
|
|
@Column(name = "end_time", nullable = false)
|
|
private OffsetDateTime endTime;
|
|
|
|
@Column(name = "guest_count", nullable = false)
|
|
private int guestCount;
|
|
|
|
@Enumerated(EnumType.STRING)
|
|
@Column(name = "status", nullable = false, length = 30)
|
|
private Status status = Status.CONFIRMED;
|
|
|
|
@Column(name = "special_requests", columnDefinition = "TEXT")
|
|
private String specialRequests;
|
|
|
|
@Column(name = "created_at")
|
|
private Instant createdAt = Instant.now();
|
|
|
|
public UUID getId() { return id; }
|
|
public Guest getGuest() { return guest; }
|
|
public List<RestaurantTable> getTables() { return tables; }
|
|
public OffsetDateTime getStartTime() { return startTime; }
|
|
public OffsetDateTime getEndTime() { return endTime; }
|
|
public int getGuestCount() { return guestCount; }
|
|
public Status getStatus() { return status; }
|
|
public String getSpecialRequests() { return specialRequests; }
|
|
public Instant getCreatedAt() { return createdAt; }
|
|
|
|
public void setId(UUID id) { this.id = id; }
|
|
public void setGuest(Guest guest) { this.guest = guest; }
|
|
public void setTables(List<RestaurantTable> tables) { this.tables = tables; }
|
|
public void setStartTime(OffsetDateTime startTime) { this.startTime = startTime; }
|
|
public void setEndTime(OffsetDateTime endTime) { this.endTime = endTime; }
|
|
public void setGuestCount(int guestCount) { this.guestCount = guestCount; }
|
|
public void setStatus(Status status) { this.status = status; }
|
|
public void setSpecialRequests(String specialRequests) { this.specialRequests = specialRequests; }
|
|
public void setCreatedAt(Instant createdAt) { this.createdAt = createdAt; }
|
|
}
|