import java.sql.Date;
import java.sql.Time;
import java.sql.Timestamp;

public class Reservation {
    private final int id;
    private final int userId;
    private final int carId;
    private final int chauffeurId;
    private final String pickupAddress;
    private final String dropoffAddress;
    private final Date reservationDate;
    private final Time reservationTime;
    private final String status;
    private final Timestamp createdAt;

    // Champs d'aide pour l'affichage
    private String carName;
    private String chauffeurName;
    private boolean hasReview;

    public Reservation(int id, int userId, int carId, int chauffeurId, String pickupAddress, String dropoffAddress, Date reservationDate, Time reservationTime, String status, Timestamp createdAt) {
        this.id = id;
        this.userId = userId;
        this.carId = carId;
        this.chauffeurId = chauffeurId;
        this.pickupAddress = pickupAddress;
        this.dropoffAddress = dropoffAddress;
        this.reservationDate = reservationDate;
        this.reservationTime = reservationTime;
        this.status = status;
        this.createdAt = createdAt;
        this.hasReview = false;
    }

    public int getId() { return id; }
    public int getUserId() { return userId; }
    public int getCarId() { return carId; }
    public int getChauffeurId() { return chauffeurId; }
    public String getPickupAddress() { return pickupAddress; }
    public String getDropoffAddress() { return dropoffAddress; }
    public Date getReservationDate() { return reservationDate; }
    public Time getReservationTime() { return reservationTime; }
    public String getStatus() { return status; }
    public Timestamp getCreatedAt() { return createdAt; }

    public String getCarName() { return carName; }
    public void setCarName(String carName) { this.carName = carName; }
    public String getChauffeurName() { return chauffeurName; }
    public void setChauffeurName(String chauffeurName) { this.chauffeurName = chauffeurName; }
    public boolean isHasReview() { return hasReview; }
    public void setHasReview(boolean hasReview) { this.hasReview = hasReview; }
}
