package br.com.elotech.saude.scripts;

public abstract class AtestadoVacinaScript {
    private static StringBuilder sb;

    public static String getDadosPaciente() {
        sb = new StringBuilder();
        sb.append(" SELECT")
                .append(" usu.usu_codigo     AS codigo,")
                .append(" usu.usu_nome       AS nome,")
                .append(" usu.usu_prontuario AS prontuario,")
                .append(" COALESCE(usu.usu_cartao_sus, 'Não informado') AS cartaosus,")
                .append(" usu.usu_datanasc   AS datanascimento,")
                .append(" EXTRACT(YEAR FROM AGE(usu.usu_datanasc)) AS idade,")
                .append(" CASE usu.usu_sexo WHEN 'F' THEN 'Feminino' WHEN 'M' THEN 'Masculino' END as sexo")
                .append(" FROM usuario usu")
                .append(" WHERE usu.usu_codigo = :usuCodigo");

        return sb.toString();
    }

    public static String getDadosUsrLogado() {
        sb = new StringBuilder();
        sb.append(" SELECT")
                .append(" usr.usr_nome         AS nome,")
                .append(" con.con_descricao    AS conselho,")
                .append(" usr.cnes_sigla_est   AS estado,")
                .append(" usr.usr_num_conselho AS numeroconselho")
                .append(" FROM usuarios usr LEFT JOIN conselho con ON usr.con_codigo = con.con_codigo")
                .append(" WHERE usr.usr_codigo = :usrLogado");

        return sb.toString();
    }

    public static String getVacinasAprazadas(){
        sb = new StringBuilder();
        sb.append(" SELECT ")
          .append("     vac.vac_data   AS data,")
          .append("     pro2.pro_nome  AS vacina,")
          .append("     usu.usu_nome   AS paciente")
          .append(" FROM vacina_usuario AS vac")
          .append(" LEFT JOIN produto AS pro2 ON pro2.pro_codigo = vac.pro_codigo")
          .append(" JOIN usuario AS usu ON vac.usu_codigo = usu.usu_codigo")
          .append(" WHERE usu.usu_codigo = :usuCodigo")
          .append("     AND vac.vac_acao = 'Z'")
          .append(" ORDER BY vac.vac_data asc");

        return sb.toString();
    }

}
