package vn.azteam.tpf.service.dto;

import java.time.Instant;
import java.io.Serializable;
import java.util.Objects;

/**
 * A DTO for the TBMaintenanceSchedule entity.
 */
public class TBMaintenanceScheduleDTO implements Serializable {

    private Long id;

    private String description;

    private Integer isRepeat;

    private String repeatEvery;

    private Integer isRepeatOnSunday;

    private Integer isRepeatOnMonday;

    private Integer isRepeatOnTuesday;

    private Integer isRepeatOnWednesday;

    private Integer isRepeatOnThursday;

    private Integer isRepeatOnFriday;

    private Integer isRepeatOnSaturday;

    private Integer dayOfMonth;

    private Instant endsOn;

    private Integer endsAfterXOccurrences;

    private Instant createdDate;

    private Instant modifiedDate;

    private Instant deletedDate;

    private Long createdById;

    private Long modifiedById;

    private Long deletedById;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public Integer getIsRepeat() {
        return isRepeat;
    }

    public void setIsRepeat(Integer isRepeat) {
        this.isRepeat = isRepeat;
    }

    public String getRepeatEvery() {
        return repeatEvery;
    }

    public void setRepeatEvery(String repeatEvery) {
        this.repeatEvery = repeatEvery;
    }

    public Integer getIsRepeatOnSunday() {
        return isRepeatOnSunday;
    }

    public void setIsRepeatOnSunday(Integer isRepeatOnSunday) {
        this.isRepeatOnSunday = isRepeatOnSunday;
    }

    public Integer getIsRepeatOnMonday() {
        return isRepeatOnMonday;
    }

    public void setIsRepeatOnMonday(Integer isRepeatOnMonday) {
        this.isRepeatOnMonday = isRepeatOnMonday;
    }

    public Integer getIsRepeatOnTuesday() {
        return isRepeatOnTuesday;
    }

    public void setIsRepeatOnTuesday(Integer isRepeatOnTuesday) {
        this.isRepeatOnTuesday = isRepeatOnTuesday;
    }

    public Integer getIsRepeatOnWednesday() {
        return isRepeatOnWednesday;
    }

    public void setIsRepeatOnWednesday(Integer isRepeatOnWednesday) {
        this.isRepeatOnWednesday = isRepeatOnWednesday;
    }

    public Integer getIsRepeatOnThursday() {
        return isRepeatOnThursday;
    }

    public void setIsRepeatOnThursday(Integer isRepeatOnThursday) {
        this.isRepeatOnThursday = isRepeatOnThursday;
    }

    public Integer getIsRepeatOnFriday() {
        return isRepeatOnFriday;
    }

    public void setIsRepeatOnFriday(Integer isRepeatOnFriday) {
        this.isRepeatOnFriday = isRepeatOnFriday;
    }

    public Integer getIsRepeatOnSaturday() {
        return isRepeatOnSaturday;
    }

    public void setIsRepeatOnSaturday(Integer isRepeatOnSaturday) {
        this.isRepeatOnSaturday = isRepeatOnSaturday;
    }

    public Integer getDayOfMonth() {
        return dayOfMonth;
    }

    public void setDayOfMonth(Integer dayOfMonth) {
        this.dayOfMonth = dayOfMonth;
    }

    public Instant getEndsOn() {
        return endsOn;
    }

    public void setEndsOn(Instant endsOn) {
        this.endsOn = endsOn;
    }

    public Integer getEndsAfterXOccurrences() {
        return endsAfterXOccurrences;
    }

    public void setEndsAfterXOccurrences(Integer endsAfterXOccurrences) {
        this.endsAfterXOccurrences = endsAfterXOccurrences;
    }

    public Instant getCreatedDate() {
        return createdDate;
    }

    public void setCreatedDate(Instant createdDate) {
        this.createdDate = createdDate;
    }

    public Instant getModifiedDate() {
        return modifiedDate;
    }

    public void setModifiedDate(Instant modifiedDate) {
        this.modifiedDate = modifiedDate;
    }

    public Instant getDeletedDate() {
        return deletedDate;
    }

    public void setDeletedDate(Instant deletedDate) {
        this.deletedDate = deletedDate;
    }

    public Long getCreatedById() {
        return createdById;
    }

    public void setCreatedById(Long tBDetailUserId) {
        this.createdById = tBDetailUserId;
    }

    public Long getModifiedById() {
        return modifiedById;
    }

    public void setModifiedById(Long tBDetailUserId) {
        this.modifiedById = tBDetailUserId;
    }

    public Long getDeletedById() {
        return deletedById;
    }

    public void setDeletedById(Long tBDetailUserId) {
        this.deletedById = tBDetailUserId;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }

        TBMaintenanceScheduleDTO tBMaintenanceScheduleDTO = (TBMaintenanceScheduleDTO) o;
        if (tBMaintenanceScheduleDTO.getId() == null || getId() == null) {
            return false;
        }
        return Objects.equals(getId(), tBMaintenanceScheduleDTO.getId());
    }

    @Override
    public int hashCode() {
        return Objects.hashCode(getId());
    }

    @Override
    public String toString() {
        return "TBMaintenanceScheduleDTO{" +
            "id=" + getId() +
            ", description='" + getDescription() + "'" +
            ", isRepeat=" + getIsRepeat() +
            ", repeatEvery='" + getRepeatEvery() + "'" +
            ", isRepeatOnSunday=" + getIsRepeatOnSunday() +
            ", isRepeatOnMonday=" + getIsRepeatOnMonday() +
            ", isRepeatOnTuesday=" + getIsRepeatOnTuesday() +
            ", isRepeatOnWednesday=" + getIsRepeatOnWednesday() +
            ", isRepeatOnThursday=" + getIsRepeatOnThursday() +
            ", isRepeatOnFriday=" + getIsRepeatOnFriday() +
            ", isRepeatOnSaturday=" + getIsRepeatOnSaturday() +
            ", dayOfMonth=" + getDayOfMonth() +
            ", endsOn='" + getEndsOn() + "'" +
            ", endsAfterXOccurrences=" + getEndsAfterXOccurrences() +
            ", createdDate='" + getCreatedDate() + "'" +
            ", modifiedDate='" + getModifiedDate() + "'" +
            ", deletedDate='" + getDeletedDate() + "'" +
            ", createdBy=" + getCreatedById() +
            ", modifiedBy=" + getModifiedById() +
            ", deletedBy=" + getDeletedById() +
            "}";
    }
}
