/** Stateful moderation fixtures for mock E2E. */ export type MockReport = { id: string; reporter_id: string; target_type: 'calendar' | 'event' | 'review'; target_id: string; reason: string; status: 'pending' | 'reviewed' | 'dismissed'; created_at: string; resolved_at: string | null; resolved_by: string | null; }; export type MockTicket = { id: string; reporter_id: string; error_hash: string; error_message: string; stacktrace: string; context: string; count: number; first_seen: string; last_seen: string; status: 'open' | 'in_progress' | 'resolved' | 'closed'; assigned_to: string | null; resolution_note: string | null; }; export type MockReview = { id: string; user_id: string; target_type: 'calendar' | 'event'; target_id: string; rating: number; comment: string; status: 'visible' | 'hidden' | 'deleted'; reason: string | null; likes: number; dislikes: number; created_at: string; updated_at: string; }; const now = '2026-07-14T12:00:00Z'; export function createModerationSeed() { const reports: MockReport[] = [ { id: 'rpt-pending-1', reporter_id: 'user-1', target_type: 'event', target_id: 'evt-1', reason: 'Spam content', status: 'pending', created_at: now, resolved_at: null, resolved_by: null, }, { id: 'rpt-pending-2', reporter_id: 'user-2', target_type: 'calendar', target_id: 'cal-1', reason: 'Offensive title', status: 'pending', created_at: now, resolved_at: null, resolved_by: null, }, { id: 'rpt-done-1', reporter_id: 'user-1', target_type: 'review', target_id: 'rev-1', reason: 'Duplicate', status: 'reviewed', created_at: now, resolved_at: now, resolved_by: 'admin-e2e-1', }, ]; const tickets: MockTicket[] = [ { id: 'tkt-open-1', reporter_id: 'user-1', error_hash: 'hash-open-1', error_message: 'NullPointer in join', stacktrace: 'at joiner:42', context: '{}', count: 3, first_seen: now, last_seen: now, status: 'open', assigned_to: null, resolution_note: null, }, { id: 'tkt-prog-1', reporter_id: 'user-2', error_hash: 'hash-prog-1', error_message: 'Timeout on sync', stacktrace: 'at sync:10', context: '{}', count: 1, first_seen: now, last_seen: now, status: 'in_progress', assigned_to: 'admin-e2e-1', resolution_note: null, }, ]; const reviews: MockReview[] = [ { id: 'rev-vis-1', user_id: 'user-1', target_type: 'event', target_id: 'evt-1', rating: 5, comment: 'Great event', status: 'visible', reason: null, likes: 2, dislikes: 0, created_at: now, updated_at: now, }, { id: 'rev-vis-2', user_id: 'user-2', target_type: 'calendar', target_id: 'cal-1', rating: 1, comment: 'Bad calendar', status: 'visible', reason: null, likes: 0, dislikes: 1, created_at: now, updated_at: now, }, ]; return { reports, tickets, reviews }; } export type ModerationState = ReturnType;