package org.example.petshopdesktop.models;

import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleStringProperty;

public class Appointment {

    private SimpleIntegerProperty appointmentId;
    private SimpleIntegerProperty serviceId;
    private SimpleIntegerProperty customerId;
    private SimpleStringProperty appointmentDate;
    private SimpleStringProperty appointmentTime;
    private SimpleStringProperty appointmentStatus;

    // Constructor
    public Appointment(int appointmentId,
                       int serviceId,
                       int customerId,
                       String appointmentDate,
                       String appointmentTime,
                       String appointmentStatus) {

        this.appointmentId = new SimpleIntegerProperty(appointmentId);
        this.serviceId = new SimpleIntegerProperty(serviceId);
        this.customerId = new SimpleIntegerProperty(customerId);
        this.appointmentDate = new SimpleStringProperty(appointmentDate);
        this.appointmentTime = new SimpleStringProperty(appointmentTime);
        this.appointmentStatus = new SimpleStringProperty(appointmentStatus);
    }

    // Getters
    public int getAppointmentId() { return appointmentId.get(); }
    public int getServiceId() { return serviceId.get(); }
    public int getCustomerId() { return customerId.get(); }
    public String getAppointmentDate() { return appointmentDate.get(); }
    public String getAppointmentTime() { return appointmentTime.get(); }
    public String getAppointmentStatus() { return appointmentStatus.get(); }

    // Properties
    public SimpleIntegerProperty appointmentIdProperty() { return appointmentId; }
    public SimpleIntegerProperty serviceIdProperty() { return serviceId; }
    public SimpleIntegerProperty customerIdProperty() { return customerId; }
    public SimpleStringProperty appointmentDateProperty() { return appointmentDate; }
    public SimpleStringProperty appointmentTimeProperty() { return appointmentTime; }
    public SimpleStringProperty appointmentStatusProperty() { return appointmentStatus; }
}