package it.sw.pa.comune.artegna.service.dto;

import it.sw.pa.comune.artegna.domain.enumeration.Ruolo;
import jakarta.validation.constraints.*;
import java.io.Serializable;
import java.util.Objects;

/**
 * A DTO for the {@link it.sw.pa.comune.artegna.domain.UtenteApp} entity.
 */
@SuppressWarnings("common-java:DuplicatedBlocks")
public class UtenteAppDTO implements Serializable {

    private Long id;

    @NotNull
    private String username;

    @NotNull
    private String email;

    private String telefono;

    @NotNull
    private Ruolo ruolo;

    @NotNull
    private Boolean attivo;

    private String nome;

    private String cognome;

    private String luogoNascita;

    private String dataNascita;

    private String residente;

    private String societa;

    private String sede;

    private String codfiscale;

    private String telefonoSoc;

    private String emailSoc;

    private UserDTO internalUser;

    public Long getId() {
        return id;
    }

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

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getTelefono() {
        return telefono;
    }

    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }

    public Ruolo getRuolo() {
        return ruolo;
    }

    public void setRuolo(Ruolo ruolo) {
        this.ruolo = ruolo;
    }

    public Boolean getAttivo() {
        return attivo;
    }

    public void setAttivo(Boolean attivo) {
        this.attivo = attivo;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getCognome() {
        return cognome;
    }

    public void setCognome(String cognome) {
        this.cognome = cognome;
    }

    public String getLuogoNascita() {
        return luogoNascita;
    }

    public void setLuogoNascita(String luogoNascita) {
        this.luogoNascita = luogoNascita;
    }

    public String getDataNascita() {
        return dataNascita;
    }

    public void setDataNascita(String dataNascita) {
        this.dataNascita = dataNascita;
    }

    public String getResidente() {
        return residente;
    }

    public void setResidente(String residente) {
        this.residente = residente;
    }

    public String getSocieta() {
        return societa;
    }

    public void setSocieta(String societa) {
        this.societa = societa;
    }

    public String getSede() {
        return sede;
    }

    public void setSede(String sede) {
        this.sede = sede;
    }

    public String getCodfiscale() {
        return codfiscale;
    }

    public void setCodfiscale(String codfiscale) {
        this.codfiscale = codfiscale;
    }

    public String getTelefonoSoc() {
        return telefonoSoc;
    }

    public void setTelefonoSoc(String telefonoSoc) {
        this.telefonoSoc = telefonoSoc;
    }

    public String getEmailSoc() {
        return emailSoc;
    }

    public void setEmailSoc(String emailSoc) {
        this.emailSoc = emailSoc;
    }

    public UserDTO getInternalUser() {
        return internalUser;
    }

    public void setInternalUser(UserDTO internalUser) {
        this.internalUser = internalUser;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (!(o instanceof UtenteAppDTO)) {
            return false;
        }

        UtenteAppDTO utenteAppDTO = (UtenteAppDTO) o;
        if (this.id == null) {
            return false;
        }
        return Objects.equals(this.id, utenteAppDTO.id);
    }

    @Override
    public int hashCode() {
        return Objects.hash(this.id);
    }

    // prettier-ignore
    @Override
    public String toString() {
        return "UtenteAppDTO{" +
            "id=" + getId() +
            ", username='" + getUsername() + "'" +
            ", email='" + getEmail() + "'" +
            ", telefono='" + getTelefono() + "'" +
            ", ruolo='" + getRuolo() + "'" +
            ", attivo='" + getAttivo() + "'" +
            ", nome='" + getNome() + "'" +
            ", cognome='" + getCognome() + "'" +
            ", luogoNascita='" + getLuogoNascita() + "'" +
            ", dataNascita='" + getDataNascita() + "'" +
            ", residente='" + getResidente() + "'" +
            ", societa='" + getSocieta() + "'" +
            ", sede='" + getSede() + "'" +
            ", codfiscale='" + getCodfiscale() + "'" +
            ", telefonoSoc='" + getTelefonoSoc() + "'" +
            ", emailSoc='" + getEmailSoc() + "'" +
            ", internalUser=" + getInternalUser() +
            "}";
    }
}
