#!/usr/bin/env python3 import os, sys, json from preaggregates import compute_preaggregates, serialize_for_ai try: import mysql.connector except Exception as e: sys.stderr.write("MySQL connector not available: %s\n" % e) sys.exit(1) def getenv(key, default=None): return os.environ.get(key, default) def main(): cfg = { #"host": getenv("MYSQL_HOST", "twinpol-mysql56"), "host": getenv("MYSQL_HOST", "localhost"), "user": getenv("MYSQL_USER", "root"), "password": getenv("MYSQL_PASSWORD", "rootpassword"), "database": getenv("MYSQL_DATABASE", "preDb_0dcc87940d3655fa574b253df04ca1c3"), "port": int(getenv("MYSQL_PORT", "3306")), } try: cnx = mysql.connector.connect(**cfg) cur = cnx.cursor() #cur.execute("SELECT COUNT(*) FROM ecminvoiceouts WHERE YEAR(register_date)=2025") cur.execute(""" SELECT i.document_no, i.parent_name, DATE(i.register_date) AS register_date, ii.code, ii.name, ii.quantity, ii.total_netto FROM ecminvoiceoutitems AS ii JOIN ecminvoiceouts AS i ON i.id = ii.ecminvoiceout_id WHERE i.register_date >= %s AND i.register_date < %s AND i.type = %s """, ("2025-07-01", "2025-08-01", "normal")) rows = cur.fetchall() results = compute_preaggregates(rows) # 2) podejrzyj wyniki # ['daily_sales', 'product_summary', 'customer_summary', 'product_daily', # 'top10_products_by_sales', 'top10_customers_by_sales'] print(">> available tables:", list(results.keys())) # print(results["daily_sales"].head(10)) # print(results["product_summary"]) # print(results["customer_summary"]) # print(results["product_daily"]) # print(results["top10_products_by_sales"]) # print(results["top10_customers_by_sales"]) results["daily_sales"].head(10) results["product_summary"] results["customer_summary"] results["product_daily"] results["top10_products_by_sales"] results["top10_customers_by_sales"] # 3) zserializuj do lekkiego JSON-a (np. do AI lub do pliku) ai_payload = serialize_for_ai(results) print(json.dumps(ai_payload, ensure_ascii=False, indent=2, default=str)) cur.close() cnx.close() except Exception as e: sys.stderr.write("Query error: %s\n" % e) sys.exit(1) if __name__ == "__main__": main()