package com.agilex.healthcare.schedulingmanager.domain;


import com.agilex.healthcare.mobilehealthplatform.domain.DomainTransferObject;
import com.agilex.healthcare.utility.datemarshallers.DateTimeMarshaller;

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 javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import java.util.Date;

@XmlAccessorType(value = XmlAccessType.NONE)
@XmlRootElement(name = "bookedAppointment", namespace = Namespace.SchedulingManager)
public class BookedAppointment extends DomainTransferObject {

    private static final long serialVersionUID = -0705080909708413958L;
    @XmlElement
    private String appointmentLength;
    @XmlElement
    @XmlJavaTypeAdapter(DateTimeMarshaller.class)
    private Date appointmentTime;
    @XmlElement
    private String status;
    @XmlElement
    private SchedulingClinic clinic;
    @XmlElement
    private String patientId;
    @XmlElement
    private String purpose;
    @XmlElement
    private String type;
    @XmlElement
    private String currentStatus;
    @XmlElement
    private String bookingNote;
    @XmlJavaTypeAdapter(DateTimeMarshaller.class)
    private Date labDateTime;
    @XmlJavaTypeAdapter(DateTimeMarshaller.class)
    private Date ekgDateTime;
    @XmlJavaTypeAdapter(DateTimeMarshaller.class)
    private Date xrayDateTime;

    public String getAppointmentLength() {
        return appointmentLength;
    }

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

    public Date getAppointmentTime() {
        return appointmentTime;
    }

    public void setAppointmentTime(Date appointmentTime) {
        this.appointmentTime = appointmentTime;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public SchedulingClinic getClinic() {
        return clinic;
    }

    public void setClinic(SchedulingClinic clinic) {
        this.clinic = clinic;
    }

    public String getPatientId() {
        return patientId;
    }

    public void setPatientId(String patientId) {
        this.patientId = patientId;
    }

    public String getPurpose() {
        return purpose;
    }

    public void setPurpose(String purpose) {
        this.purpose = purpose;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getCurrentStatus() {
        return currentStatus;
    }

    public void setCurrentStatus(String currentStatus) {
        this.currentStatus = currentStatus;
    }

    public String getBookingNote() {
        return bookingNote;
    }

    public void setBookingNote(String bookingNote) {
        this.bookingNote = bookingNote;
    }

    public Date getLabDateTime() {
        return labDateTime;
    }

    public void setLabDateTime(Date labDateTime) {
        this.labDateTime = labDateTime;
    }

    public Date getEkgDateTime() {
        return ekgDateTime;
    }

    public void setEkgDateTime(Date ekgDateTime) {
        this.ekgDateTime = ekgDateTime;
    }

    public Date getXrayDateTime() {
        return xrayDateTime;
    }

    public void setXrayDateTime(Date xrayDateTime) {
        this.xrayDateTime = xrayDateTime;
    }
}
