#!/bin/bash

# Define os nomes dos arquivos CSV
input_csv="exported_data.csv"
export_csv="exported_data.csv"
backup_csv="backup_data.csv"

# Função para garantir que o CPF tenha exatamente 11 dígitos
format_cpf() {
    local cpf="$1"
    # Remove caracteres não numéricos
    cpf=$(echo "$cpf" | tr -cd '0-9')
    # Preenche com zeros à esquerda se necessário
    if [ ${#cpf} -lt 11 ]; then
        cpf=$(printf "%011d" "$cpf")
    fi
    echo "$cpf"
}

# Obtém a data atual no formato YYYY-MM-DD
current_date=$(date +"%Y-%m-%d")

# Exporta os dados atuais da tabela para um arquivo CSV usando bcp
bcp "SELECT Cpf, Nome, SituacaoColaborador, EmpresaId, DataCriacao FROM dbo.Colaboradores WHERE EmpresaId = 84" \
    queryout "$export_csv" -c -t"," -S clicklifeesqlsrvprd.database.windows.net -d clicklifeesqlprd -U adminclicklifee -P 9iVgJeJ4djLj_aAzP3lxiakoGP2p8_j8XWzR

echo "Os dados atuais foram exportados para $export_csv."

# Cria uma cópia de segurança do CSV exportado
cp "$export_csv" "$backup_csv"
echo "Uma cópia de segurança foi criada como $backup_csv."

# Solicita confirmação para substituir os cadastros
read -p "Confirme se os dados exportados estão corretos e deseja substituir os cadastros existentes para EmpresaId = 84? (s/n): " confirm
if [[ ! "$confirm" =~ ^[Ss]$ ]]; then
    echo "Operação cancelada."
    exit 1
fi

# Remove todas as linhas com EmpresaId = 84 antes de inserir novos dados
sqlcmd -S clicklifeesqlsrvprd.database.windows.net -d clicklifeesqlprd -U adminclicklifee -P 9iVgJeJ4djLj_aAzP3lxiakoGP2p8_j8XWzR -Q "
DELETE FROM dbo.Colaboradores WHERE EmpresaId = 84;
" -b

# Remove o cabeçalho do arquivo CSV e processa cada linha da cópia de segurança
tail -n +2 "$backup_csv" | while IFS=',' read -r cpf nome situacao_colaborador empresa_id data_criacao; do
    # Remove espaços adicionais dos campos
    cpf=$(echo "$cpf" | xargs)
    nome=$(echo "$nome" | xargs)
    situacao_colaborador=$(echo "$situacao_colaborador" | xargs)
    data_criacao=$(echo "$data_criacao" | xargs)

    # Depuração dos dados lidos
    echo "Debug: CPF='$cpf', Nome='$nome', SituacaoColaborador='$situacao_colaborador', EmpresaId='84', DataCriacao='$data_criacao'"

    if [ -n "$cpf" ] && [ -n "$nome" ]; then
        # Formata o CPF para ter exatamente 11 dígitos
        formatted_cpf=$(format_cpf "$cpf")

        # Insere os dados na tabela
        sqlcmd -S clicklifeesqlsrvprd.database.windows.net -d clicklifeesqlprd -U adminclicklifee -P 9iVgJeJ4djLj_aAzP3lxiakoGP2p8_j8XWzR -Q "
        INSERT INTO dbo.Colaboradores (Cpf, Nome, SituacaoColaborador, EmpresaId, DataCriacao)
        VALUES ('$formatted_cpf', '$nome', 'Ativo', 84, '$current_date');
        " -b
    else
        echo "Linha ignorada: CPF ou Nome vazio."
    fi
done

# Verifica se a reinserção foi bem-sucedida
if [ $? -eq 0 ]; then
    echo "Dados re-cadastrados com sucesso."
else
    echo "Falha ao re-cadastrar os dados."
fi
