import logging
from flask import Blueprint, jsonify, request
from .auth import token_required
from flask_mysqldb import MySQL
import os 

newclient = Blueprint('newclient', __name__)

mysql = MySQL()

CAMINHO_LOGO = "/var/www/Backend/itguys/ambiente_python/repositorio_img/logos/"

# Configuração de logging
logging.basicConfig(level=logging.DEBUG)  # Log no nível de debug

def salvar_imagem(arquivo, tipo_imagem, nome_empresa):
    """Salva a imagem no diretório correspondente e retorna o caminho relativo"""
    nome_arquivo = f"{nome_empresa}.png"
    
    tipo_imagem == "logos"
    caminho_diretorio = CAMINHO_LOGO
    caminho_relativo = f"logos/{nome_arquivo}"

    caminho_completo = os.path.join(caminho_diretorio, nome_arquivo)

    # Garante que o diretório existe
    os.makedirs(caminho_diretorio, exist_ok=True)

    # Salva a imagem
    arquivo.save(caminho_completo)

    return caminho_relativo  # Retorna o caminho relativo para o banco de dados


@newclient.route('/cliente', methods=['POST'])
@token_required
def inserir_cliente(get):  # Recebe current_user do decorador
    data = request.get_json()

    nome_empresa = data.get('nome_empresa')
    cpf_cnpj = data.get('cpf_cnpj')
    dominio_empresa = data.get('dominio_empresa')
    tipo_pessoa = data.get('tipo_pessoa')
    endereco = data.get('endereco')
    cidade = data.get('cidade')
    bairro = data.get('bairro')
    cep = data.get('cep')
    uf = data.get ('uf')
    valor_servico = data.get('valor_servico')
    grupo_zabbix = data.get('grupo_zabbix')
    dia_vencimento = int(data.get('dia_vencimento'))
    email = data.get('email financeiro')
    logo = request.files.get('logo')


    if not nome_empresa or not cpf_cnpj or not dominio_empresa or not tipo_pessoa or not endereco or not cidade or not bairro or not cep or not uf or not valor_servico or not grupo_zabbix or not dia_vencimento or not email or not logo:
        return jsonify({'erro': 'Todos os campos são obrigatórios'}), 400
    
    caminho_logo = salvar_imagem(logo, nome_empresa)  # Salvando imagem e obtendo caminho
    
    conn = mysql.connection
    cursor = conn.cursor()

    try:
        query = """
        INSERT INTO empresa (nome_empresa, cpf_cnpj, dominio_empresa, tipo_pessoa, endereco, cidade, bairro, cep, uf, valor_servico, grupo_zabbix, dia_vencimento, email, logo)
        VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s )
        """
        cursor.execute(query, (nome_empresa, cpf_cnpj, dominio_empresa, tipo_pessoa, endereco, cidade, bairro, cep, uf, valor_servico, grupo_zabbix, dia_vencimento, email, logo))
        conn.commit()
        
        return jsonify({'message': 'Dados inseridos com sucesso!'}), 200

    except Exception as err:
        logging.error(f"Erro ao inserir dados: {str(err)}", exc_info=True)  # Logando erro com traceback
        return jsonify({'erro': f'Erro ao inserir dados: {str(err)}'}), 500

    finally:
        cursor.close()