Files
SmartSeat/src/main/java/com/caspos/domain/Reservation.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; }
}