// Copyright 2026 ppyq882
// Licensed under the Apache License, Version 2.0

///|
/// Interactive scenario demonstrating Privacy Loss Audit Report generation.
pub fn run_audit_demo() -> Unit {
  println("==================================================")
  println("  3. Privacy Loss Audit Trail Exporter Scenario   ")
  println("==================================================")

  let logger = @audit.AuditLogger::new()
  let b = match @core.PrivacyBudget::make(0.8, 0.00001) {
    Ok(budget) => budget
    Err(_) => @core.PrivacyBudget::zero()
  }
  let e1 = @audit.AuditEntry::new(
    "q1",
    "alice",
    "patients",
    "SELECT COUNT(*)",
    "Laplace",
    b,
    b,
    1000L,
    @audit.QueryStatus::executed(),
  )
  let e2 = @audit.AuditEntry::new(
    "q2",
    "bob",
    "salaries",
    "SELECT AVG(salary)",
    "Gaussian",
    b,
    b,
    1005L,
    @audit.QueryStatus::executed(),
  )

  logger.log(e1)
  logger.log(e2)

  let report = @audit.generate_audit_report(logger)
  let md_report = @audit.export_report_markdown(
    report, "MoonBit DP Audit Summary",
  )

  println(md_report)
  println("==================================================")
}