import os
import django
import json
import datetime
from decimal import Decimal

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "facturation.settings")
django.setup()

from dgi.edef_client import EdefClient

def test_payload():
    client = EdefClient()

    # 1️⃣ Récupération taux USD
    rates = client.info_currency_rates()
    usd_rate = next(r for r in rates if r["type"] == "USD")

    dt = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")

    payload = {
        # 🔴 OBLIGATOIRE
        "nif": "A2560363Q",                     # NIF du VENDEUR
        "rn": "TEST-USD-" + datetime.datetime.now().strftime("%H%M%S"),
        "mode": "ttc",
        "isf": "ABC-DEF-01",
        "type": "FV",

        # 🔴 ARTICLES
        "items": [{
            "code": "REF001",
            "name": "TEST ARTICLE",
            "type": "SER",
            "quantity": 1,
            "price": 100,
            "taxGroup": "A"
        }],

        # 🔴 CLIENT
        "client": {
            "name": "CLIENT TEST",
            "type": "PP",
            "address": "Kinshasa"
        },

        # 🔴 PAIEMENT
        "payment": [{
            "name": "ESPECES",
            "amount": 100
        }],

        # 🔴 DEVISE
        "curCode": "USD",
        "curDate": usd_rate["date"],
        "curRate": usd_rate["rate"],

        # 🔴 OPÉRATEUR
        "operator": {
            "id": "01",
            "name": "TEST OPERATOR"
        }
    }

    print(json.dumps(payload, indent=2))

    try:
        resp = client.create_invoice(payload)
        print("✅ SUCCÈS :", resp)
    except Exception as e:
        print("❌ ECHEC :", e)


if __name__ == "__main__":
    test_payload()
