feat(api): add REST controllers, services, entities and 15-min timeline grid
This commit is contained in:
72
src/main/java/com/caspos/domain/Reservation.java
Normal file
72
src/main/java/com/caspos/domain/Reservation.java
Normal file
@@ -0,0 +1,72 @@
|
||||
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; }
|
||||
}
|
||||
Reference in New Issue
Block a user