/**
 * Mock data barrel export.
 *
 * Instantiates the seeded PRNG with seed 42 and generates all datasets once
 * at module load time. Every import receives the same singleton references,
 * ensuring deterministic, consistent data across the entire application.
 */

import { createRng } from '@/lib/mock-data/seed';
import { generateWorks } from '@/lib/mock-data/generators/works';
import { generateComposers } from '@/lib/mock-data/generators/composers';
import { generatePayees } from '@/lib/mock-data/generators/payees';
import { generateContracts } from '@/lib/mock-data/generators/contracts';
import { generateIncome } from '@/lib/mock-data/generators/income';
import { generateTransactions } from '@/lib/mock-data/generators/transactions';
import { generateCosts } from '@/lib/mock-data/generators/costs';
import { generateStatements } from '@/lib/mock-data/generators/statements';
import { generateSuspense } from '@/lib/mock-data/generators/suspense';
import { generateAuditEvents } from '@/lib/mock-data/generators/audit';
import { generateUsers } from '@/lib/mock-data/generators/users';
import { generateClientPortalData } from '@/lib/mock-data/generators/client-portal';

const rng = createRng(42);

export const works = generateWorks(rng, 200);
export const composers = generateComposers(rng, 50, works);
export const payees = generatePayees(rng, 40);
export const contracts = generateContracts(rng, 60);
export const income = generateIncome(rng, 500, works);
export const transactions = generateTransactions(rng, 300);
export const costs = generateCosts(rng, 100);
export const statements = generateStatements(rng, 30, payees);
export const suspenseItems = generateSuspense(rng, 40, works);
export const auditEvents = generateAuditEvents(rng, 100);
export const users = generateUsers(rng, 4);
export const clientPortal = generateClientPortalData(rng);
