from flask import Blueprint, request, jsonify, current_app
from flask_mysqldb import MySQL
from .auth import token_required  # Importa o token_required de auth.py

montagem = Blueprint('montagem', __name__, static_folder='repositorio_img')
mysql = MySQL()

@montagem.route('/mounting', methods=['GET'])
@token_required  # Verificação de token para autenticação
def mounting(data):
    username_full = data['user']

    # Verifica se o usuário está autenticado
    if not username_full:
        return jsonify({'msg': 'Token inválido!'}), 401

    # Extrair o nome de usuário e o domínio do email do usuário autenticado
    username = username_full.split('@')[0]
    domain = username_full.split('@')[1]

    # Consultar o banco de dados para obter as informações do usuário (nome, img_perfil, img_fundo)
    cur = mysql.connection.cursor()
    cur.execute("SELECT nome, img_perfil, img_fundo FROM usuarios WHERE usuario = %s", (username,))
    usuario_result = cur.fetchone()

    if usuario_result is None:
        cur.close()
        return jsonify({'msg': 'Usuário não encontrado no banco de dados'}), 404

    nome_usuario, img_perfil_path, img_fundo_path = usuario_result

    perfil_MP = usuario_result['img_perfil']
    fundo_MP = usuario_result['img_fundo']

    # Consultar o banco de dados para obter o nome e o logo da empresa com base no domínio
    cur.execute("SELECT nome, logo FROM empresa WHERE dominio = %s", (domain,))
    empresa_result = cur.fetchone()
    cur.close()

    if empresa_result is None:
        return jsonify({'msg': 'Empresa não encontrada no banco de dados para o domínio fornecido'}), 404

    nome_empresa, logo_empresa_path = empresa_result
    logo_MP = empresa_result['logo']
   
    # Montar a resposta JSON com os caminhos relativos das imagens e outras informações
    response_data = {
        'usuario': {
            'nome': username,
            'img_perfil': f"/repositorio_img/{perfil_MP}",  # Caminho relativo para a imagem de perfil
            'img_fundo': f"/repositorio_img/{fundo_MP}"    # Caminho relativo para a imagem de fundo
        },
        'empresa': {
            'nome': domain,
            'logo': f"/repositorio_img/{logo_MP}"      # Caminho relativo para o logo da empresa
        }
    
    }
    return jsonify(response_data), 200
