package vn.azteam.tpf.service.dto;

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

/**
 * A DTO for the TBActivity entity.
 */
public class TBActivityDTO implements Serializable {

    private Long id;

    private Integer ageDay;

    private Long cropId;

    private Double totalCost;

    private String media;

    private String externalTable;

    private Instant executeDate;

    private String description;

    private Instant createdDate;

    private Instant modifiedDate;

    private Instant deletedDate;

    private Long deletedById;

    private Long createdById;

    private String createdByName;

    private Long modifiedById;

    private String modifiedByName;

    private Long activityTypeId;

    private String activityTypeName;

    private String activityTypeDescription;

    public Long getId() {
        return id;
    }

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

    public Integer getAgeDay() {
        return ageDay;
    }

    public void setAgeDay(Integer ageDay) {
        this.ageDay = ageDay;
    }

    public Long getCropId() {
        return cropId;
    }

    public void setCropId(Long cropId) {
        this.cropId = cropId;
    }

    public Double getTotalCost() {
        return totalCost;
    }

    public void setTotalCost(Double totalCost) {
        this.totalCost = totalCost;
    }

    public String getMedia() {
        return media;
    }

    public void setMedia(String media) {
        this.media = media;
    }

    public String getExternalTable() {
        return externalTable;
    }

    public void setExternalTable(String externalTable) {
        this.externalTable = externalTable;
    }

    public Instant getExecuteDate() {
        return executeDate;
    }

    public void setExecuteDate(Instant executeDate) {
        this.executeDate = executeDate;
    }

    public String getDescription() {
        return description;
    }

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

    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 getDeletedById() {
        return deletedById;
    }

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

    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 getActivityTypeId() {
        return activityTypeId;
    }

    public void setActivityTypeId(Long tBActivityTypeId) {
        this.activityTypeId = tBActivityTypeId;
    }

    public String getActivityTypeName() {
        return activityTypeName;
    }

    public void setActivityTypeName(String activityTypeName) {
        this.activityTypeName = activityTypeName;
    }

    public String getModifiedByName() {
        return modifiedByName;
    }

    public void setModifiedByName(String modifiedByName) {
        this.modifiedByName = modifiedByName;
    }

    public String getCreatedByName() {
        return createdByName;
    }

    public void setCreatedByName(String createdByName) {
        this.createdByName = createdByName;
    }

    public String getActivityTypeDescription() {
        return activityTypeDescription;
    }

    public void setActivityTypeDescription(String activityTypeDescription) {
        this.activityTypeDescription = activityTypeDescription;
    }

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

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

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

    @Override
    public String toString() {
        return "TBActivityDTO{" +
            "id=" + getId() +
            ", ageDay=" + getAgeDay() +
            ", cropId=" + getCropId() +
            ", totalCost=" + getTotalCost() +
            ", media='" + getMedia() + "'" +
            ", externalTable='" + getExternalTable() + "'" +
            ", executeDate='" + getExecuteDate() + "'" +
            ", description='" + getDescription() + "'" +
            ", createdDate='" + getCreatedDate() + "'" +
            ", modifiedDate='" + getModifiedDate() + "'" +
            ", deletedDate='" + getDeletedDate() + "'" +
            ", deletedBy=" + getDeletedById() +
            ", createdBy=" + getCreatedById() +
            ", modifiedBy=" + getModifiedById() +
            ", activityType=" + getActivityTypeId() +
            "}";
    }
}
