package vn.azteam.tpf.service.dto;

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

/**
 * A DTO for the TBDetailUser entity.
 */
public class TBDetailUserDTO implements Serializable {

    private Long id;

    private String fullName;

    private String phone;

    private Instant birthday;

    private Integer gender;

    private Long userId;

    private String fcmToken;

    private Long tbRoleId;

    private String tbRoleName;

    private Long tbCustomerId;

    private Long tbAddressId;

    public Long getId() {
        return id;
    }

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

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getFullName() {
        return fullName;
    }

    public void setFullName(String fullName) {
        this.fullName = fullName;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public Instant getBirthday() {
        return birthday;
    }

    public void setBirthday(Instant birthday) {
        this.birthday = birthday;
    }

    public Integer getGender() {
        return gender;
    }

    public void setGender(Integer gender) {
        this.gender = gender;
    }

    public Long getTbRoleId() {
        return tbRoleId;
    }

    public void setTbRoleId(Long tBRoleId) {
        this.tbRoleId = tBRoleId;
    }

    public Long getTbCustomerId() {
        return tbCustomerId;
    }

    public void setTbCustomerId(Long tBCustomerId) {
        this.tbCustomerId = tBCustomerId;
    }

    public Long getTbAddressId() {
        return tbAddressId;
    }

    public void setTbAddressId(Long tBAddressId) {
        this.tbAddressId = tBAddressId;
    }

    public String getTbRoleName() {
        return tbRoleName;
    }

    public void setTbRoleName(String tbRoleName) {
        this.tbRoleName = tbRoleName;
    }

    public String getFcmToken() {
        return fcmToken;
    }

    public void setFcmToken(String fcmToken) {
        this.fcmToken = fcmToken;
    }

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

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

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

    @Override
    public String toString() {
        return "TBDetailUserDTO{" +
            "id=" + getId() +
            ", fullName='" + getFullName() + "'" +
            ", phone='" + getPhone() + "'" +
            ", birthday='" + getBirthday() + "'" +
            ", gender=" + getGender() +
            ", tbRole=" + getTbRoleId() +
            ", tbCustomer=" + getTbCustomerId() +
            ", tbAddress=" + getTbAddressId() +
            ", fcmToken=" + getFcmToken() +
            "}";
    }
}
