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

app = Flask(__name__)
CORS(app)

UPLOAD_FOLDER = os.path.join(os.path.dirname(__file__), 'uploads')
DBF_PATH = 'C:/Vendas2.0/DADOS/PRODUTOS.dbf'

if not os.path.exists(UPLOAD_FOLDER):
    os.makedirs(UPLOAD_FOLDER)

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

@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 = foto.filename.split('.')[-1].lower()
    nome_foto = f"{codigo}.{ext}"
    caminho = os.path.join(UPLOAD_FOLDER, nome_foto)
    foto.save(caminho)
    # Apenas retorna o nome do arquivo salvo (não atualiza mais no DBF)
    try:
        return jsonify({'foto_salva': nome_foto})
    except Exception as e:
        return jsonify({'erro': str(e)}), 500

@app.route('/imagens/<nome>')
def get_imagem(nome):
    return send_from_directory(UPLOAD_FOLDER, nome)

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