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

import jakarta.persistence.Lob;
import java.io.Serializable;
import java.time.Instant;
import java.util.Objects;

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

    private Long id;

    private String nome;

    private String testo;

    @Lob
    private byte[] documento;

    private String documentoContentType;

    private Instant validoDal;

    private Instant validoAl;

    private StrutturaDTO struttura;

    public Long getId() {
        return id;
    }

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

    public String getNome() {
        return nome;
    }

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

    public String getTesto() {
        return testo;
    }

    public void setTesto(String testo) {
        this.testo = testo;
    }

    public byte[] getDocumento() {
        return documento;
    }

    public void setDocumento(byte[] documento) {
        this.documento = documento;
    }

    public String getDocumentoContentType() {
        return documentoContentType;
    }

    public void setDocumentoContentType(String documentoContentType) {
        this.documentoContentType = documentoContentType;
    }

    public Instant getValidoDal() {
        return validoDal;
    }

    public void setValidoDal(Instant validoDal) {
        this.validoDal = validoDal;
    }

    public Instant getValidoAl() {
        return validoAl;
    }

    public void setValidoAl(Instant validoAl) {
        this.validoAl = validoAl;
    }

    public StrutturaDTO getStruttura() {
        return struttura;
    }

    public void setStruttura(StrutturaDTO struttura) {
        this.struttura = struttura;
    }

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

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

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

    // prettier-ignore
    @Override
    public String toString() {
        return "ModelloLiberatoriaDTO{" +
            "id=" + getId() +
            ", nome='" + getNome() + "'" +
            ", testo='" + getTesto() + "'" +
            ", documento='" + getDocumento() + "'" +
            ", validoDal='" + getValidoDal() + "'" +
            ", validoAl='" + getValidoAl() + "'" +
            ", struttura=" + getStruttura() +
            "}";
    }
}
