"""Synthetic receiver demonstration. No network, credentials or customer records.
Run: python3 crm-retry-demo.py
The unique reference and insert transaction handle duplicate receipt atomically.
A real receiver must supply durable storage, authentication and access control.
"""
import json
import sqlite3


def receive(db, reference, payload):
    canonical = json.dumps(payload, sort_keys=True, separators=(",", ":"))
    with db:
        db.execute("INSERT OR IGNORE INTO leads (source_id, payload) VALUES (?, ?)",
                   (reference, canonical))
        record, original = db.execute(
            "SELECT id, payload FROM leads WHERE source_id = ?", (reference,)).fetchone()
        if original != canonical:
            raise ValueError("Same submission reference with a different payload: operator review")
    return f"crm-demo-{record:03d}"


def main():
    db = sqlite3.connect(":memory:")
    db.execute("CREATE TABLE leads (id INTEGER PRIMARY KEY, source_id TEXT UNIQUE NOT NULL, payload TEXT NOT NULL)")
    payload = {"email": "buyer@example.invalid", "marketing_opt_in": False}
    first = receive(db, "demo-enquiry-001", payload)
    retry = receive(db, "demo-enquiry-001", payload)
    count = db.execute("SELECT count(*) FROM leads").fetchone()[0]
    assert first == retry and count == 1
    print(f"First receipt: {first}\nRetry after lost acknowledgement: {retry}\nReceiving records: {count}")
    try:
        receive(db, "demo-enquiry-001", {**payload, "marketing_opt_in": True})
    except ValueError as error:
        print(error)
    else:
        raise AssertionError("Conflicting payload must be rejected")
    db.close()


if __name__ == "__main__":
    main()
