/* Folclore Latin Fund I — Data room file framework.
   Drop PDFs/docs at the listed paths, then set status: "ready" to enable download.
   Folder `level` (1–4) is the default gate. A file may set its own `level` to override. */

const DATAROOM_BASE = "dataroom";
const EXECUTIVE_SUMMARY_URL = "https://drive.google.com/file/d/1eG1snn6noXi1nxZW4C7sqaRSCAMffGRc/view?usp=sharing";

const DATAROOM_MANIFEST = [
  {
    id: "offering",
    name: "01 — Offering Materials",
    description: "Fundraising documents for prospective and current limited partners.",
    level: 2,
    files: [
      { name: "Private Placement Memorandum", file: "private-placement-memorandum.pdf", status: "placeholder" },
      { name: "Executive Summary", file: "executive-summary.pdf", status: "ready", level: 1, url: EXECUTIVE_SUMMARY_URL },
      { name: "Investment Highlights", file: "investment-highlights.pdf", status: "placeholder", level: 1 },
      { name: "Fund Presentation", file: "fund-presentation.pdf", status: "placeholder", level: 1 },
      { name: "Track Record & Case Studies", file: "track-record-case-studies.pdf", status: "placeholder" },
      { name: "Terms & Fee Summary", file: "terms-fee-summary.pdf", status: "placeholder", level: 1 },
      { name: "Fund Structure Chart", file: "fund-structure-chart.pdf", status: "placeholder" },
      { name: "Prospective LP FAQ", file: "prospective-lp-faq.pdf", status: "placeholder", level: 1 },
    ],
  },
  {
    id: "legal",
    name: "02 — Legal Documents",
    description: "Binding fund agreements and governing documentation.",
    level: 3,
    files: [
      { name: "Limited Partnership Agreement", file: "limited-partnership-agreement.pdf", status: "placeholder" },
      { name: "Subscription Agreement", file: "subscription-agreement.pdf", status: "placeholder" },
      { name: "Side Letter Template", file: "side-letter-template.pdf", status: "placeholder" },
      { name: "GP Operating Agreement", file: "gp-operating-agreement.pdf", status: "placeholder" },
      { name: "Investment Management Agreement", file: "investment-management-agreement.pdf", status: "placeholder" },
      { name: "Custody Agreement", file: "custody-agreement.pdf", status: "placeholder" },
      { name: "Indemnification Agreement", file: "indemnification-agreement.pdf", status: "placeholder" },
    ],
  },
  {
    id: "compliance",
    name: "03 — Compliance & Regulatory",
    description: "Policies, regulatory filings, and investor protection documentation.",
    level: 3,
    files: [
      { name: "AML / KYC Policy", file: "aml-kyc-policy.pdf", status: "placeholder" },
      { name: "Privacy Policy", file: "privacy-policy.pdf", status: "placeholder" },
      { name: "Code of Ethics", file: "code-of-ethics.pdf", status: "placeholder" },
      { name: "Conflicts of Interest Policy", file: "conflicts-of-interest-policy.pdf", status: "placeholder" },
      { name: "Compliance Manual", file: "compliance-manual.pdf", status: "placeholder" },
      { name: "Form ADV Part 1", file: "form-adv-part-1.pdf", status: "placeholder" },
      { name: "Form ADV Part 2A (Brochure)", file: "form-adv-part-2a.pdf", status: "placeholder" },
      { name: "FATCA / CRS Documentation", file: "fatca-crs-documentation.pdf", status: "placeholder" },
      { name: "Regulatory Disclosures", file: "regulatory-disclosures.pdf", status: "placeholder" },
    ],
  },
  {
    id: "financials",
    name: "04 — Fund Financials",
    description: "Audited statements, NAV, schedules of investments, and tax materials.",
    level: 3,
    files: [
      { name: "Audited Financial Statements", file: "audited-financial-statements.pdf", status: "placeholder" },
      { name: "Unaudited Interim Financials", file: "unaudited-interim-financials.pdf", status: "placeholder" },
      { name: "Schedule of Investments", file: "schedule-of-investments.pdf", status: "placeholder" },
      { name: "NAV Report (Latest)", file: "nav-report-latest.pdf", status: "placeholder" },
      { name: "Capital Account Summary", file: "capital-account-summary.pdf", status: "placeholder" },
      { name: "Tax Schedules (K-1)", file: "tax-schedules-k1.pdf", status: "placeholder" },
      { name: "Management Fee Calculation", file: "management-fee-calculation.pdf", status: "placeholder" },
    ],
  },
  {
    id: "reporting",
    name: "05 — Investor Reporting",
    description: "Periodic communications, capital activity, and portfolio updates.",
    level: 2,
    files: [
      { name: "Quarterly LP Letter — Q4 2025", file: "quarterly-lp-letter-q4-2025.pdf", status: "placeholder" },
      { name: "Quarterly LP Letter — Q3 2025", file: "quarterly-lp-letter-q3-2025.pdf", status: "placeholder" },
      { name: "Quarterly LP Letter — Q2 2025", file: "quarterly-lp-letter-q2-2025.pdf", status: "placeholder" },
      { name: "Quarterly LP Letter — Q1 2025", file: "quarterly-lp-letter-q1-2025.pdf", status: "placeholder" },
      { name: "Annual Report 2025", file: "annual-report-2025.pdf", status: "placeholder" },
      { name: "Investor Presentation (Latest)", file: "investor-presentation-latest.pdf", status: "placeholder" },
      { name: "Portfolio Review", file: "portfolio-review-latest.pdf", status: "placeholder" },
      { name: "Capital Call Notice — Template", file: "capital-call-notice-template.pdf", status: "placeholder" },
      { name: "Distribution Notice — Template", file: "distribution-notice-template.pdf", status: "placeholder" },
    ],
  },
  {
    id: "onboarding",
    name: "06 — LP Onboarding",
    description: "Subscription workflow, tax forms, and operational setup for new investors.",
    level: 4,
    files: [
      { name: "LP Questionnaire", file: "lp-questionnaire.pdf", status: "placeholder" },
      { name: "Accredited Investor Certification", file: "accredited-investor-certification.pdf", status: "placeholder" },
      { name: "W-8BEN Form", file: "w8-ben-form.pdf", status: "placeholder" },
      { name: "W-9 Form", file: "w9-form.pdf", status: "placeholder" },
      { name: "Wire Instructions", file: "wire-instructions.pdf", status: "placeholder" },
      { name: "Contact & Notification Preferences", file: "contact-notification-preferences.pdf", status: "placeholder" },
      { name: "AML Documentation Checklist", file: "aml-documentation-checklist.pdf", status: "placeholder" },
    ],
  },
  {
    id: "esg",
    name: "07 — ESG & Impact",
    description: "Responsible investment policies and impact reporting.",
    level: 2,
    files: [
      { name: "ESG Policy", file: "esg-policy.pdf", status: "placeholder" },
      { name: "Impact Report 2025", file: "impact-report-2025.pdf", status: "placeholder" },
      { name: "DEI Report", file: "dei-report.pdf", status: "placeholder" },
      { name: "Artisan Provenance Framework", file: "artisan-provenance-framework.pdf", status: "placeholder" },
      { name: "SFDR Disclosures", file: "sfdr-disclosures.pdf", status: "placeholder" },
      { name: "Carbon & Supply Chain Summary", file: "carbon-supply-chain-summary.pdf", status: "placeholder" },
    ],
  },
  {
    id: "operations",
    name: "08 — Team & Operations",
    description: "GP team, service providers, and fund administration materials.",
    level: 3,
    files: [
      {
        name: "Team Biographies",
        file: "team-biographies.pdf",
        status: "ready",
        level: 1,
        embeds: [
          { name: "Nick Walker", url: "https://drive.google.com/file/d/1MWQqumeiNkuecSx9-_dB-lBYPBWNEIll/view?usp=sharing" },
          { name: "Dolly Moorhead", url: "https://drive.google.com/file/d/1VztiQE47AQOKUn-ugqUmZowUqutN14YC/view?usp=sharing" },
          { name: "Henrique Lamim, CFA", url: "https://drive.google.com/file/d/1uiUPE2PZ8ZZ1S5ya0nYcUVrRs3BDJnbl/view?usp=sharing" },
          { name: "Camila Pierotti", url: "https://drive.google.com/file/d/1jjsm1JJlxCo2uMOrLbfLu9tZyNEcATEb/view?usp=sharing" },
        ],
      },
      { name: "Organizational Chart", file: "organizational-chart.pdf", status: "ready", level: 1, onPage: "firm" },
      { name: "Service Provider Directory", file: "service-provider-directory.pdf", status: "placeholder" },
      { name: "Fund Administrator Report", file: "fund-administrator-report.pdf", status: "placeholder" },
      { name: "Auditor Comfort Letter", file: "auditor-comfort-letter.pdf", status: "placeholder", level: 4 },
      { name: "Legal Counsel Opinion", file: "legal-counsel-opinion.pdf", status: "placeholder" },
      { name: "Insurance Certificates", file: "insurance-certificates.pdf", status: "placeholder", level: 4 },
    ],
  },
  {
    id: "portfolio",
    name: "09 — Portfolio Companies",
    description: "Per-investment memos, board materials, and company reporting. Add a subfolder per company.",
    level: 4,
    files: [
      {
        name: "Target Company Profile",
        file: "target-company-profile.pdf",
        status: "ready",
        embeds: [
          { name: "Target Company Profile", url: "https://drive.google.com/file/d/1Umj427uAbOQDe4j4qm7mpIJTqsNFs6Ps/view?usp=sharing" },
        ],
      },
      { name: "[Template] Investment Committee Memo", file: "_template-investment-memo.pdf", status: "placeholder" },
      { name: "[Template] Board Package", file: "_template-board-package.pdf", status: "placeholder" },
      { name: "[Template] Quarterly Company Financials", file: "_template-quarterly-financials.pdf", status: "placeholder" },
      { name: "Casa Aurelia — Investment Memo", file: "casa-aurelia/investment-memo.pdf", status: "placeholder" },
      { name: "Casa Aurelia — Board Materials", file: "casa-aurelia/board-materials.pdf", status: "placeholder" },
      { name: "Andina Spirits — Investment Memo", file: "andina-spirits/investment-memo.pdf", status: "placeholder" },
      { name: "Andina Spirits — Board Materials", file: "andina-spirits/board-materials.pdf", status: "placeholder" },
      { name: "Pacifica Home — Investment Memo", file: "pacifica-home/investment-memo.pdf", status: "placeholder" },
      { name: "Pacifica Home — Board Materials", file: "pacifica-home/board-materials.pdf", status: "placeholder" },
      { name: "Vistamar Logistics — Investment Memo", file: "vistamar-logistics/investment-memo.pdf", status: "placeholder" },
      { name: "Terra Fina — Investment Memo", file: "terra-fina/investment-memo.pdf", status: "placeholder" },
      { name: "Lumen Atelier — Investment Memo", file: "lumen-atelier/investment-memo.pdf", status: "placeholder" },
    ],
  },
  {
    id: "models",
    name: "10 — Financial Models",
    description: "Excel models for fund returns, waterfalls, LBOs, and portfolio company projections.",
    level: 4,
    files: [
      { name: "Lenny Niemeyer — Investment Model", file: "LN_Investment_Model_Folclore.xlsx", status: "ready" },
      { name: "Fund Returns Model", file: "fund-returns-model.xlsx", status: "placeholder", level: 2 },
      { name: "Capital Call & Deployment Schedule", file: "deployment-schedule.xlsx", status: "placeholder", level: 2 },
      { name: "Distribution Waterfall", file: "distribution-waterfall.xlsx", status: "placeholder", level: 2 },
      { name: "LP Cap Table & Ownership", file: "lp-cap-table.xlsx", status: "placeholder" },
      { name: "Portfolio Consolidation Model", file: "portfolio-consolidation.xlsx", status: "placeholder" },
      { name: "LBO Template — Platform Acquisition", file: "lbo-template-platform.xlsx", status: "placeholder", level: 2 },
      { name: "Sensitivity Analysis — IRR & MOIC", file: "sensitivity-analysis.xlsx", status: "placeholder", level: 2 },
      { name: "Casa Aurelia — Financial Model", file: "casa-aurelia-financial-model.xlsx", status: "placeholder" },
      { name: "Andina Spirits — Financial Model", file: "andina-spirits-financial-model.xlsx", status: "placeholder" },
      { name: "Pacifica Home — Financial Model", file: "pacifica-home-financial-model.xlsx", status: "placeholder" },
      { name: "Vistamar Logistics — Financial Model", file: "vistamar-logistics-financial-model.xlsx", status: "placeholder" },
      { name: "Terra Fina — Financial Model", file: "terra-fina-financial-model.xlsx", status: "placeholder" },
      { name: "Lumen Atelier — Financial Model", file: "lumen-atelier-financial-model.xlsx", status: "placeholder" },
    ],
  },
];

/* Folder slug map — paths on disk */
const DATAROOM_FOLDER_PATHS = {
  offering: "01-offering-materials",
  legal: "02-legal-documents",
  compliance: "03-compliance-regulatory",
  financials: "04-fund-financials",
  reporting: "05-investor-reporting",
  onboarding: "06-lp-onboarding",
  esg: "07-esg-impact",
  operations: "08-team-operations",
  portfolio: "09-portfolio-companies",
  models: "10-financial-models",
};

function fileAccessLevel(folder, file) {
  if (file && typeof file.level === "number") return file.level;
  if (folder && typeof folder.level === "number") return folder.level;
  return 1;
}

function drivePreviewUrl(url) {
  if (!url) return "";
  const match = String(url).match(/\/file\/d\/([^/]+)/);
  if (match) return "https://drive.google.com/file/d/" + match[1] + "/preview";
  return url;
}

function buildDataroomTree() {
  return DATAROOM_MANIFEST.map((folder) => ({
    id: folder.id,
    name: folder.name,
    description: folder.description,
    level: typeof folder.level === "number" ? folder.level : 1,
    files: folder.files.map((f) => ({
      name: f.name,
      file: f.file,
      status: f.status,
      level: fileAccessLevel(folder, f),
      path: DATAROOM_BASE + "/" + DATAROOM_FOLDER_PATHS[folder.id] + "/" + f.file,
      url: f.url || null,
      preview: f.url ? drivePreviewUrl(f.url) : null,
      onPage: f.onPage || null,
      embeds: Array.isArray(f.embeds)
        ? f.embeds.map((item) => ({
            name: item.name,
            url: item.url,
            preview: drivePreviewUrl(item.url || item.preview),
          }))
        : null,
    })),
  }));
}

const DATAROOM_TREE = buildDataroomTree();

Object.assign(window, { DATAROOM_TREE, DATAROOM_MANIFEST, DATAROOM_BASE, DATAROOM_FOLDER_PATHS, EXECUTIVE_SUMMARY_URL, fileAccessLevel, drivePreviewUrl });
