from flask import Flask, jsonify, send_from_directory, request
from dbfread import DBF
from flask_cors import CORS
import os
import werkzeug

app = Flask(__name__)
CORS(app)

DBF_PATH = r'\\DESKTOP-ER9RDTT\Vendas6.0\DADOS\PRODUTOS.dbf'
IMAGENS_PATH = r'\\DESKTOP-ER9RDTT\Vendas6.0\IMAGENS'

@app.route('/produtos', methods=['GET'])
def listar_produtos():
    produtos = []
    try:
        for registro in DBF(DBF_PATH, encoding='latin1'):
            foto2 = str(registro.get('FOTO2', '')).strip()
            url_imagem = f"http://localhost:5000/imagem/{foto2}" if foto2 else ""
            produtos.append({
                'codigo': str(registro.get('CODIGO', '')).strip(),
                'descricao': str(registro.get('DESCRICAO', '')).strip(),
                'p_venda': float(registro.get('P_VENDA', 0)),
                'foto2': foto2,
                'url_imagem': url_imagem
            })
        return jsonify(produtos)
    except Exception as e:
        print("Erro:", e)
        return jsonify({'erro': str(e)}), 500

@app.route('/imagem/<foto2>', methods=['GET'])
def servir_imagem(foto2):
    # Adiciona extensão .jpg
    for ext in ['jpg', 'jpeg', 'png']:
        nome_arquivo = f"{foto2}.{ext}"
        caminho = os.path.join(IMAGENS_PATH, nome_arquivo)
        if os.path.exists(caminho):
            return send_from_directory(IMAGENS_PATH, nome_arquivo)
    return jsonify({'erro': 'Imagem não encontrada'}), 404

@app.route('/upload_foto', methods=['POST'])
def upload_foto():
    codigo = request.form.get('codigo')
    if 'foto' not in request.files or not codigo:
        return jsonify({'erro': 'Envie o código e a foto'}), 400
    foto = request.files['foto']
    ext = werkzeug.utils.secure_filename(foto.filename).split('.')[-1].lower()
    nome_arquivo = f"{codigo}.{ext}"
    caminho = os.path.join(IMAGENS_PATH, nome_arquivo)
    foto.save(caminho)
    # Aqui seria ideal atualizar o campo FOTO2 no DBF, mas dbfread é só leitura.
    # Você pode usar um banco auxiliar ou atualizar manualmente depois.
    return jsonify({'foto2': codigo, 'url_imagem': f"http://localhost:5000/imagem/{codigo}"})

if __name__ == '__main__':
    app.run(host='localhost', port=5000)