package br.com.elotech.social.scripts;

import br.com.elotech.social.model.filters.DeclaracaoFilter;

public class DeclaracaoScript {

    public static String getSql(DeclaracaoFilter filter) {

      StringBuilder sb = new StringBuilder()
        .append("SELECT uni.uni_desc AS unidade,")
        .append("       usu.usu_nome AS cidadao,")
        .append("       usr.usr_nome AS profissionalPrincipal,")
        .append("       usr2.usr_nome AS profissionalSecundario,")
        .append("       asd.asd_finalidade AS finalidade,")
        .append("       asd.asd_tipo_declaracao AS tipoDeclaracao,")
        .append("       asd.asd_data AS dataDeclaracao,")
        .append("       asd.asd_periodo AS periodo,")
        .append("       asd.asd_motivo AS motivo,")
        .append("       sec.nome_cidade AS cidade,")
        .append("       esp.esp_nome AS especialidadePrincipal,")
        .append("       esp2.esp_nome AS especialidadeSecundario,")
        .append("       usr.usr_num_conselho AS numConselhoPrincipal,")
        .append("       usr2.usr_num_conselho AS numConselhoSecundario,")
        .append("       con.con_descricao AS conselhoPrincipal,")
        .append("       con.con_descricao AS conselhoSecundario")
        .append("  FROM as_declaracao asd")
        .append("  JOIN unidade uni ON uni.uni_codigo = asd.uni_codigo")
        .append("  JOIN usuario usu ON usu.usu_codigo = asd.usu_codigo")
        .append("  JOIN usuarios usr ON usr.usr_codigo = asd.usr_codigo_principal")
        .append("  LEFT JOIN usuarios usr2 ON usr2.usr_codigo = asd.usr_codigo_secundario")
        .append("  LEFT JOIN secretaria sec ON uni.uni_as = sec.sec_as")
        .append("  LEFT JOIN conselho con on usr.con_codigo = con.con_codigo")
        .append("  LEFT JOIN conselho con2 on usr2.con_codigo = con.con_codigo")
        .append("  LEFT JOIN medico_especialidade mes ON usr.usr_codigo = mes.med_codigo ")
        .append("                                  AND mes.uni_codigo = uni.uni_codigo ")
        .append("                                  AND mes.mes_ativo = 'A'")
        .append("  LEFT JOIN medico_especialidade mes2 ON usr2.usr_codigo = mes2.med_codigo ")
        .append("                                  AND mes2.uni_codigo = uni.uni_codigo ")
        .append("                                  AND mes2.mes_ativo = 'A'")
        .append("  LEFT JOIN especialidade esp ON esp.esp_codigo = mes.esp_codigo")
        .append("  LEFT JOIN especialidade esp2 ON esp.esp_codigo = mes2.esp_codigo")
        .append(" WHERE asd.asd_codigo = :asdCodigo");

        return sb.toString();
    }
}
