package br.com.elotech.websaude.odontograma.backend.model;

import lombok.Builder;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Date;

@Builder
public class TratamentoHistoricoBean {

    @Getter
    @Setter
    Long codigo;
    @Getter
    @Setter
    LocalDate dataInicial, dataFinal, dataInicialTratamento, dataFinalExame;
    @Setter
    String status;
    @Getter
    @Setter
    String profissional;
    @Getter
    @Setter
    String anotacao;

    public void setDataInicial(java.sql.Date dataInicial) {
        if (dataInicial != null)
            this.dataInicial = dataInicial.toLocalDate();
    }

    public void setDataInicialTratamento(java.sql.Date dataInicialTratamento) {
        if (dataInicialTratamento != null)
            this.dataInicialTratamento = dataInicialTratamento.toLocalDate();
    }

    public void setDataFinal(java.sql.Date dataFinal) {
        if (dataFinal != null)
            this.dataFinal = dataFinal.toLocalDate();
    }
    public void setDataFinalExame(java.sql.Date dataFinalExame) {
        if (dataFinalExame != null)
            this.dataFinalExame = dataFinalExame.toLocalDate();
    }

    public String getDataInicialFormatado() {
        if (dataInicial == null)
            return "";
        return dataInicial.format(DateTimeFormatter.ofPattern("dd/MM/yyyy"));
    }

    public String getDataInicialTratamentoFormatado() {
        if (dataInicialTratamento == null)
            return "";
        return dataInicialTratamento.format(DateTimeFormatter.ofPattern("dd/MM/yyyy"));
    }

    public String getDataFinalFormatado() {
        if (dataFinal == null)
            return "";
        return dataFinal.format(DateTimeFormatter.ofPattern("dd/MM/yyyy"));
    }

    public String getDataFinalExameFormatado() {
        if (dataFinalExame == null)
            return "";
        return dataFinalExame.format(DateTimeFormatter.ofPattern("dd/MM/yyyy"));
    }

    public String getStatus() {
        return (status == null ? "Aberto" : (status.equalsIgnoreCase("A") ? "Aberto" : "Fechado"));
    }
}
