import pandas as pd, numpy as np, json

df = pd.read_pickle("D:/Evolução categorias/.worktrees/comissao/analise_produtos.pkl")
df['FORNECEDOR'] = df['FORNECEDOR'].fillna('(SEM FORNECEDOR)').str.strip()
df['GRUPO']      = df['GRUPO'].fillna('(SEM GRUPO)').str.strip()
df['NOME']       = df['NOME'].str.strip()

# Alto giro: produtos com vendas, giro >= 1 (vendeu pelo menos o estoque atual no período)
# Ordenar por receita, depois giro
alto = df[df['QTD_VENDIDA'] > 0].copy()
alto = alto[alto['GIRO_ESTOQUE'] >= 1].copy()
alto = alto.sort_values('VL_VENDIDO', ascending=False)

print(f"Alto giro (giro>=1): {len(alto)}")
print(f"Receita total:  R$ {alto['VL_VENDIDO'].sum():,.2f}")
print(f"Lucro total:    R$ {alto['LUCRO_BRUTO'].sum():,.2f}")
print(f"Margem média:   {alto[alto['VL_VENDIDO']>0]['MARGEM_REAL'].mean():.1f}%")

result = []
for _, r in alto.iterrows():
    dias_sv = None if r.DIAS_SEM_VENDA == 9999 else int(r.DIAS_SEM_VENDA)
    result.append({
        "nome":       str(r.NOME)[:60],
        "fornecedor": str(r.FORNECEDOR),
        "grupo":      str(r.GRUPO)[:30],
        "estoque":    round(float(r.ESTOQUE_ATUAL), 2),
        "custo":      round(float(r.PRECO_CUSTO), 2),
        "vl_est":     round(float(r.VL_ESTOQUE), 2),
        "qtd_vend":   round(float(r.QTD_VENDIDA), 2),
        "receita":    round(float(r.VL_VENDIDO), 2),
        "lucro":      round(float(r.LUCRO_BRUTO), 2),
        "margem":     round(float(r.MARGEM_REAL), 1),
        "giro":       round(float(r.GIRO_ESTOQUE), 2),
        "cobertura":  round(float(r.COBERTURA_MESES), 1) if r.COBERTURA_MESES < 9999 else 0,
        "dias_sv":    dias_sv,
    })

with open("D:/Evolução categorias/.worktrees/comissao/alto_giro.json","w",encoding="utf-8") as f:
    json.dump(result, f, ensure_ascii=False)

print(f"\nExportados: {len(result)} produtos")
print("Top 5:")
for r in result[:5]:
    print(f"  {r['nome'][:45]:45s}  receita=R${r['receita']:>10,.2f}  giro={r['giro']:.1f}x  margem={r['margem']:.1f}%")
