package com.agilex.healthcare.schedulingmanager.domain;

import com.agilex.healthcare.mobilehealthplatform.domain.DomainTransferObjectCollection;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.Collection;

@XmlAccessorType(value = XmlAccessType.NONE)
@XmlRootElement(name = "AppointmentTimeSlots", namespace = Namespace.SchedulingManager)
public class AppointmentTimeSlots extends DomainTransferObjectCollection<AppointmentTimeSlot> {

    private static final long serialVersionUID = -6576427322744622230L;

    @XmlElement
    private String clinicId;

    @XmlElement
    private String clinicName;

    @XmlElement
    private String appointmentLength;

    @XmlElement
    private String clinicDisplayStartTime;

    @XmlElement
    private String displayIncrements;

    @XmlElement
    private String stopCode;

    @XmlElement
    private String creditCode;

    @XmlElement
    private String specialty;

    @XmlElement
    private boolean askForCheckIn;

    @XmlElement
    private String maxOverbooksPerDay;

    @XmlElement
    private boolean hasUserAccessToClinic;

    public String getClinicId() {
        return clinicId;
    }

    public void setClinicId(String clinicId) {
        this.clinicId = clinicId;
    }

    public String getClinicName() {
        return clinicName;
    }

    public void setClinicName(String clinicName) {
        this.clinicName = clinicName;
    }

    public String getAppointmentLength() {
        return appointmentLength;
    }

    public void setAppointmentLength(String appointmentLength) {
        this.appointmentLength = appointmentLength;
    }

    public String getClinicDisplayStartTime() {
        return clinicDisplayStartTime;
    }

    public void setClinicDisplayStartTime(String clinicDisplayStartTime) {
        this.clinicDisplayStartTime = clinicDisplayStartTime;
    }

    public String getDisplayIncrements() {
        return displayIncrements;
    }

    public void setDisplayIncrements(String displayIncrements) {
        this.displayIncrements = displayIncrements;
    }

    @XmlElement(namespace = Namespace.SchedulingManager)
    public Collection<AppointmentTimeSlot> getAppointmentTimeSlot(){
        return this;
    }

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public String getStopCode() {
        return stopCode;
    }

    public void setStopCode(String stopCode) {
        this.stopCode = stopCode;
    }

    public String getCreditCode() {
        return creditCode;
    }

    public void setCreditCode(String creditCode) {
        this.creditCode = creditCode;
    }

    public String getSpecialty() {
        return specialty;
    }

    public void setSpecialty(String specialty) {
        this.specialty = specialty;
    }

    public boolean isAskForCheckIn() {
        return askForCheckIn;
    }

    public void setAskForCheckIn(boolean askForCheckIn) {
        this.askForCheckIn = askForCheckIn;
    }

    public String getMaxOverbooksPerDay() {
        return maxOverbooksPerDay;
    }

    public void setMaxOverbooksPerDay(String maxOverbooksPerDay) {
        this.maxOverbooksPerDay = maxOverbooksPerDay;
    }

    public boolean isHasUserAccessToClinic() {
        return hasUserAccessToClinic;
    }

    public void setHasUserAccessToClinic(boolean hasUserAccessToClinic) {
        this.hasUserAccessToClinic = hasUserAccessToClinic;
    }
}
