/**
 * Mock vault entries and bulk entry generator.
 * Provides realistic VaultEntry[] data for browser dev mode.
 */

import type { VaultEntry } from '../types'

const now = Date.now() / 1000

export const MOCK_ENTRIES: VaultEntry[] = [
  {
    path: '/Users/luca/Laputa/project/26q1-laputa-app.md',
    filename: '26q1-laputa-app.md',
    title: 'Build Laputa App',
    isA: 'Project',
    aliases: ['Laputa App'],
    belongsTo: ['[[quarter/q1-2026]]'],
    relatedTo: ['[[topic/software-development]]'],
    status: 'Active',
    owner: 'Luca Rossi',
    cadence: null,
    archived: false,
    trashed: false,
    trashedAt: null,
    modifiedAt: now,
    createdAt: now - 86400 * 60,
    fileSize: 2048,
    snippet: 'This paragraph has bold text, italic text, bold italic, strikethrough, and inline code. Here\'s a regular link and a wiki-link to Matteo Cellini.',
    wordCount: 342,
    relationships: {
      'Belongs to': ['[[quarter/q1-2026]]'],
      'Related to': ['[[topic/software-development]]'],
      'Type': ['[[type/project]]'],
    },
    icon: null,
    color: null,
    order: null,
    outgoingLinks: [],
  },
  {
    path: '/Users/luca/Laputa/responsibility/grow-newsletter.md',
    filename: 'grow-newsletter.md',
    title: 'Grow Newsletter',
    isA: 'Responsibility',
    aliases: [],
    belongsTo: [],
    relatedTo: ['[[topic/growth]]'],
    status: 'Active',
    owner: 'Luca Rossi',
    cadence: null,
    archived: false,
    trashed: false,
    trashedAt: null,
    modifiedAt: now - 3600,
    createdAt: now - 86400 * 180,
    fileSize: 1024,
    snippet: 'Build a sustainable audience through high-quality weekly essays on engineering leadership, AI, and personal systems.',
    wordCount: 215,
    relationships: {
      'Has': [
        '[[essay/on-writing-well|On Writing Well]]',
        '[[essay/engineering-leadership-101|Engineering Leadership 101]]',
        '[[essay/ai-agents-primer|AI Agents Primer]]',
      ],
      'Topics': ['[[topic/growth]]', '[[topic/writing]]'],
      'Related to': ['[[topic/growth]]'],
      'Type': ['[[type/responsibility]]'],
    },
    icon: null,
    color: null,
    order: null,
    outgoingLinks: [],
  },
  {
    path: '/Users/luca/Laputa/responsibility/manage-sponsorships.md',
    filename: 'manage-sponsorships.md',
    title: 'Manage Sponsorships',
    isA: 'Responsibility',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: 'Active',
    owner: 'Matteo Cellini',
    cadence: null,
    archived: false,
    trashed: false,
    trashedAt: null,
    modifiedAt: now - 7200,
    createdAt: now - 86400 * 150,
    fileSize: 890,
    snippet: 'Revenue stream from newsletter sponsorships. Matteo Cellini handles day-to-day operations.',
    wordCount: 180,
    relationships: {
      'Owner': ['[[person/matteo-cellini|Matteo Cellini]]'],
      'Type': ['[[type/responsibility]]'],
    },
    icon: null,
    color: null,
    order: null,
    outgoingLinks: [],
  },
  {
    path: '/Users/luca/Laputa/procedure/write-weekly-essays.md',
    filename: 'write-weekly-essays.md',
    title: 'Write Weekly Essays',
    isA: 'Procedure',
    aliases: [],
    belongsTo: ['[[responsibility/grow-newsletter]]'],
    relatedTo: [],
    status: 'Paused',
    owner: 'Luca Rossi',
    cadence: 'Weekly',
    archived: false,
    trashed: false,
    trashedAt: null,
    modifiedAt: now - 86400,
    createdAt: now - 86400 * 120,
    fileSize: 512,
    snippet: 'Monday: Pick topic, outline Tuesday: First draft Wednesday: Edit and polish Thursday: Schedule for Tuesday send',
    wordCount: 95,
    relationships: {
      'Belongs to': ['[[responsibility/grow-newsletter]]'],
      'Type': ['[[type/procedure]]'],
    },
    icon: null,
    color: null,
    order: null,
    outgoingLinks: [],
  },
  {
    path: '/Users/luca/Laputa/procedure/run-sponsorships.md',
    filename: 'run-sponsorships.md',
    title: 'Run Sponsorships',
    isA: 'Procedure',
    aliases: [],
    belongsTo: ['[[responsibility/manage-sponsorships]]'],
    relatedTo: [],
    status: 'Done',
    owner: 'Matteo Cellini',
    cadence: 'Weekly',
    archived: false,
    trashed: false,
    trashedAt: null,
    modifiedAt: now - 86400 * 2,
    createdAt: now - 86400 * 100,
    fileSize: 640,
    snippet: 'Review pipeline in CRM Follow up with pending proposals Schedule confirmed sponsors Send performance reports to completed sponsors',
    wordCount: 128,
    relationships: {
      'Belongs to': ['[[responsibility/manage-sponsorships]]'],
      'Type': ['[[type/procedure]]'],
    },
    icon: null,
    color: null,
    order: null,
    outgoingLinks: [],
  },
  {
    path: '/Users/luca/Laputa/experiment/stock-screener.md',
    filename: 'stock-screener.md',
    title: 'Stock Screener — EMA200 Wick Bounce',
    isA: 'Experiment',
    aliases: ['Trading Screener'],
    belongsTo: [],
    relatedTo: ['[[topic/trading]]', '[[topic/algorithmic-trading]]'],
    status: 'Paused',
    owner: 'Luca Rossi',
    cadence: null,
    archived: false,
    trashed: false,
    trashedAt: null,
    modifiedAt: now - 86400,
    createdAt: now - 86400 * 45,
    fileSize: 3200,
    snippet: 'Stocks that wick below the 200-day EMA and close above it show a statistically significant bounce in the following 5-10 days.',
    wordCount: 520,
    relationships: {
      'Related to': ['[[topic/trading]]', '[[topic/algorithmic-trading]]'],
      'Has Data': ['[[data/ema200-backtest-results]]'],
      'Type': ['[[type/experiment]]'],
    },
    icon: null,
    color: null,
    order: null,
    outgoingLinks: [],
  },
  {
    path: '/Users/luca/Laputa/note/facebook-ads-strategy.md',
    filename: 'facebook-ads-strategy.md',
    title: 'Facebook Ads Strategy',
    isA: 'Note',
    aliases: [],
    belongsTo: ['[[project/26q1-laputa-app]]'],
    relatedTo: ['[[topic/growth]]', '[[topic/ads]]'],
    status: null,
    owner: null,
    cadence: null,
    archived: false,
    trashed: false,
    trashedAt: null,
    modifiedAt: now - 3600 * 5,
    createdAt: now - 86400 * 30,
    fileSize: 847,
    snippet: 'Lookalike audiences from newsletter subscribers convert 3x better than interest-based targeting Video ads outperform static images by 40% on engagement',
    wordCount: 267,
    relationships: {
      'Belongs to': ['[[project/26q1-laputa-app]]'],
      'Related to': ['[[topic/growth]]', '[[topic/ads]]'],
      'Type': ['[[type/note]]'],
    },
    icon: null,
    color: null,
    order: null,
    outgoingLinks: [],
  },
  {
    path: '/Users/luca/Laputa/note/budget-allocation.md',
    filename: 'budget-allocation.md',
    title: 'Budget Allocation',
    isA: 'Note',
    aliases: [],
    belongsTo: ['[[project/26q1-laputa-app]]'],
    relatedTo: [],
    status: null,
    owner: null,
    cadence: null,
    archived: false,
    trashed: false,
    trashedAt: null,
    modifiedAt: now - 86400,
    createdAt: now - 86400 * 20,
    fileSize: 560,
    snippet: 'Under budget on ads due to improved targeting efficiency Consider reallocating savings to content production',
    wordCount: 150,
    relationships: {
      'Belongs to': ['[[project/26q1-laputa-app]]'],
      'Type': ['[[type/note]]'],
    },
    icon: null,
    color: null,
    order: null,
    outgoingLinks: [],
  },
  {
    path: '/Users/luca/Laputa/person/matteo-cellini.md',
    filename: 'matteo-cellini.md',
    title: 'Matteo Cellini',
    isA: 'Person',
    aliases: ['Matteo'],
    belongsTo: [],
    relatedTo: [],
    status: null,
    owner: null,
    cadence: null,
    archived: false,
    trashed: false,
    trashedAt: null,
    modifiedAt: now - 86400 * 7,
    createdAt: now - 86400 * 200,
    fileSize: 320,
    snippet: 'Sponsorship manager — handles all sponsor relationships, proposals, and reporting.',
    wordCount: 88,
    relationships: {
      'Type': ['[[type/person]]'],
    },
    icon: null,
    color: null,
    order: null,
    outgoingLinks: [],
  },
  {
    path: '/Users/luca/Laputa/person/maria-bianchi.md',
    filename: 'maria-bianchi.md',
    title: 'Maria Bianchi',
    isA: 'Person',
    aliases: ['Maria'],
    belongsTo: [],
    relatedTo: [],
    status: null,
    owner: null,
    cadence: null,
    archived: false,
    trashed: false,
    trashedAt: null,
    modifiedAt: now - 86400 * 3,
    createdAt: now - 86400 * 150,
    fileSize: 280,
    snippet: 'Product designer — leads UX research and design sprints for the app.',
    wordCount: 120,
    relationships: {
      'Type': ['[[type/person]]'],
    },
    icon: null,
    color: null,
    order: null,
    outgoingLinks: [],
  },
  {
    path: '/Users/luca/Laputa/person/marco-verdi.md',
    filename: 'marco-verdi.md',
    title: 'Marco Verdi',
    isA: 'Person',
    aliases: ['Marco'],
    belongsTo: [],
    relatedTo: [],
    status: null,
    owner: null,
    cadence: null,
    archived: false,
    trashed: false,
    trashedAt: null,
    modifiedAt: now - 86400 * 5,
    createdAt: now - 86400 * 120,
    fileSize: 240,
    snippet: 'Frontend engineer — focuses on React performance and accessibility.',
    wordCount: 95,
    relationships: {
      'Type': ['[[type/person]]'],
    },
    icon: null,
    color: null,
    order: null,
    outgoingLinks: [],
  },
  {
    path: '/Users/luca/Laputa/person/elena-russo.md',
    filename: 'elena-russo.md',
    title: 'Elena Russo',
    isA: 'Person',
    aliases: ['Elena'],
    belongsTo: [],
    relatedTo: [],
    status: null,
    owner: null,
    cadence: null,
    archived: false,
    trashed: false,
    trashedAt: null,
    modifiedAt: now - 86400 * 10,
    createdAt: now - 86400 * 90,
    fileSize: 200,
    snippet: 'Content strategist — plans newsletter topics and manages the editorial calendar.',
    wordCount: 75,
    relationships: {
      'Type': ['[[type/person]]'],
    },
    icon: null,
    color: null,
    order: null,
    outgoingLinks: [],
  },
  {
    path: '/Users/luca/Laputa/event/2026-02-14-laputa-app-kickoff.md',
    filename: '2026-02-14-laputa-app-kickoff.md',
    title: 'Laputa App Design Session',
    isA: 'Event',
    aliases: [],
    belongsTo: [],
    relatedTo: ['[[project/26q1-laputa-app]]', '[[person/matteo-cellini]]'],
    status: null,
    owner: null,
    cadence: null,
    archived: false,
    trashed: false,
    trashedAt: null,
    modifiedAt: now - 3600 * 2,
    createdAt: now - 86400 * 7,
    fileSize: 1200,
    snippet: 'Agreed on four-panel layout inspired by Bear Notes CodeMirror 6 for the editor — live preview is critical MVP by end of Q1.',
    wordCount: 310,
    relationships: {
      'Related to': ['[[project/26q1-laputa-app]]', '[[person/matteo-cellini]]'],
      'Type': ['[[type/event]]'],
    },
    icon: null,
    color: null,
    order: null,
    outgoingLinks: [],
  },
  {
    path: '/Users/luca/Laputa/topic/software-development.md',
    filename: 'software-development.md',
    title: 'Software Development',
    isA: 'Topic',
    aliases: ['Dev', 'Coding'],
    belongsTo: [],
    relatedTo: [],
    status: null,
    owner: null,
    cadence: null,
    archived: false,
    trashed: false,
    trashedAt: null,
    modifiedAt: now - 86400 * 30,
    createdAt: now - 86400 * 365,
    fileSize: 256,
    snippet: 'A broad topic covering everything from frontend to systems programming.',
    wordCount: 45,
    relationships: {
      'Notes': ['[[note/facebook-ads-strategy]]', '[[note/budget-allocation]]'],
      'Type': ['[[type/topic]]'],
    },
    icon: null,
    color: null,
    order: null,
    outgoingLinks: [],
  },
  {
    path: '/Users/luca/Laputa/topic/trading.md',
    filename: 'trading.md',
    title: 'Trading',
    isA: 'Topic',
    aliases: ['Algorithmic Trading'],
    belongsTo: [],
    relatedTo: [],
    status: null,
    owner: null,
    cadence: null,
    archived: false,
    trashed: false,
    trashedAt: null,
    modifiedAt: now - 86400 * 14,
    createdAt: now - 86400 * 300,
    fileSize: 180,
    snippet: 'Technical analysis (EMA, RSI, volume patterns) Algorithmic screening and alerts Risk management and position sizing',
    wordCount: 60,
    relationships: {
      'Notes': ['[[experiment/stock-screener]]'],
      'Type': ['[[type/topic]]'],
    },
    icon: null,
    color: null,
    order: null,
    outgoingLinks: [],
  },
  {
    path: '/Users/luca/Laputa/essay/on-writing-well.md',
    filename: 'on-writing-well.md',
    title: 'On Writing Well',
    isA: 'Essay',
    aliases: [],
    belongsTo: ['[[responsibility/grow-newsletter]]'],
    relatedTo: [],
    status: null,
    owner: null,
    cadence: null,
    archived: false,
    trashed: false,
    trashedAt: null,
    modifiedAt: now - 86400 * 3,
    createdAt: now - 86400 * 14,
    fileSize: 4200,
    snippet: 'Good writing is lean and confident. Every sentence should serve a purpose.',
    wordCount: 180,
    relationships: {
      'Belongs to': ['[[responsibility/grow-newsletter]]'],
      'Type': ['[[type/essay]]'],
    },
    icon: null,
    color: null,
    order: null,
    outgoingLinks: [],
  },
  {
    path: '/Users/luca/Laputa/essay/engineering-leadership-101.md',
    filename: 'engineering-leadership-101.md',
    title: 'Engineering Leadership 101',
    isA: 'Essay',
    aliases: [],
    belongsTo: ['[[responsibility/grow-newsletter]]'],
    relatedTo: ['[[topic/software-development]]'],
    status: null,
    owner: null,
    cadence: null,
    archived: false,
    trashed: false,
    trashedAt: null,
    modifiedAt: now - 86400 * 7,
    createdAt: now - 86400 * 30,
    fileSize: 3800,
    snippet: 'The transition from IC to manager is the hardest career shift in engineering.',
    wordCount: 640,
    relationships: {
      'Belongs to': ['[[responsibility/grow-newsletter]]'],
      'Related to': ['[[topic/software-development]]'],
      'Type': ['[[type/essay]]'],
    },
    icon: null,
    color: null,
    order: null,
    outgoingLinks: [],
  },
  {
    path: '/Users/luca/Laputa/essay/ai-agents-primer.md',
    filename: 'ai-agents-primer.md',
    title: 'AI Agents Primer',
    isA: 'Essay',
    aliases: [],
    belongsTo: ['[[responsibility/grow-newsletter]]'],
    relatedTo: [],
    status: null,
    owner: null,
    cadence: null,
    archived: false,
    trashed: false,
    trashedAt: null,
    modifiedAt: now - 86400 * 10,
    createdAt: now - 86400 * 21,
    fileSize: 5100,
    snippet: 'AI agents are autonomous systems that can plan, execute, and adapt to achieve goals.',
    wordCount: 410,
    relationships: {
      'Belongs to': ['[[responsibility/grow-newsletter]]'],
      'Type': ['[[type/essay]]'],
    },
    icon: null,
    color: null,
    order: null,
    outgoingLinks: [],
  },
  // --- Type documents ---
  {
    path: '/Users/luca/Laputa/type/project.md',
    filename: 'project.md',
    title: 'Project',
    isA: 'Type',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: null,
    owner: null,
    cadence: null,
    archived: false,
    trashed: false,
    trashedAt: null,
    modifiedAt: now - 86400 * 90,
    createdAt: now - 86400 * 365,
    fileSize: 320,
    snippet: 'A time-bound initiative that advances a Responsibility. Projects have a clear start, end, and deliverables.',
    wordCount: 280,
    relationships: {},
    icon: null,
    color: null,
    order: 0,
    outgoingLinks: [],
  },
  {
    path: '/Users/luca/Laputa/type/responsibility.md',
    filename: 'responsibility.md',
    title: 'Responsibility',
    isA: 'Type',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: null,
    owner: null,
    cadence: null,
    archived: false,
    trashed: false,
    trashedAt: null,
    modifiedAt: now - 86400 * 90,
    createdAt: now - 86400 * 365,
    fileSize: 280,
    snippet: 'An ongoing area of ownership — something you\'re accountable for indefinitely.',
    wordCount: 50,
    relationships: {},
    icon: null,
    color: null,
    order: 1,
    outgoingLinks: [],
  },
  {
    path: '/Users/luca/Laputa/type/procedure.md',
    filename: 'procedure.md',
    title: 'Procedure',
    isA: 'Type',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: null,
    owner: null,
    cadence: null,
    archived: false,
    trashed: false,
    trashedAt: null,
    modifiedAt: now - 86400 * 90,
    createdAt: now - 86400 * 365,
    fileSize: 310,
    snippet: 'A recurring process tied to a Responsibility. Procedures have a cadence and describe how to do something.',
    wordCount: 45,
    relationships: {},
    icon: null,
    color: null,
    order: 2,
    outgoingLinks: [],
  },
  {
    path: '/Users/luca/Laputa/type/experiment.md',
    filename: 'experiment.md',
    title: 'Experiment',
    isA: 'Type',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: null,
    owner: null,
    cadence: null,
    archived: false,
    trashed: false,
    trashedAt: null,
    modifiedAt: now - 86400 * 90,
    createdAt: now - 86400 * 365,
    fileSize: 290,
    snippet: 'A hypothesis-driven investigation with a clear test and measurable outcome.',
    wordCount: 55,
    relationships: {},
    icon: null,
    color: null,
    order: 3,
    outgoingLinks: [],
  },
  {
    path: '/Users/luca/Laputa/type/person.md',
    filename: 'person.md',
    title: 'Person',
    isA: 'Type',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: null,
    owner: null,
    cadence: null,
    archived: false,
    trashed: false,
    trashedAt: null,
    modifiedAt: now - 86400 * 90,
    createdAt: now - 86400 * 365,
    fileSize: 200,
    snippet: 'A person you interact with — team members, collaborators, contacts.',
    wordCount: 40,
    relationships: {},
    icon: null,
    color: null,
    order: 4,
    outgoingLinks: [],
  },
  {
    path: '/Users/luca/Laputa/type/event.md',
    filename: 'event.md',
    title: 'Event',
    isA: 'Type',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: null,
    owner: null,
    cadence: null,
    archived: false,
    trashed: false,
    trashedAt: null,
    modifiedAt: now - 86400 * 90,
    createdAt: now - 86400 * 365,
    fileSize: 180,
    snippet: 'A point-in-time occurrence — meetings, launches, milestones.',
    wordCount: 35,
    relationships: {},
    icon: null,
    color: null,
    order: 5,
    outgoingLinks: [],
  },
  {
    path: '/Users/luca/Laputa/type/topic.md',
    filename: 'topic.md',
    title: 'Topic',
    isA: 'Type',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: null,
    owner: null,
    cadence: null,
    archived: false,
    trashed: false,
    trashedAt: null,
    modifiedAt: now - 86400 * 90,
    createdAt: now - 86400 * 365,
    fileSize: 170,
    snippet: 'A subject area for categorization. Topics group related notes, projects, and resources by theme.',
    wordCount: 30,
    relationships: {},
    icon: null,
    color: null,
    order: 6,
    outgoingLinks: [],
  },
  {
    path: '/Users/luca/Laputa/type/essay.md',
    filename: 'essay.md',
    title: 'Essay',
    isA: 'Type',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: null,
    owner: null,
    cadence: null,
    archived: false,
    trashed: false,
    trashedAt: null,
    modifiedAt: now - 86400 * 90,
    createdAt: now - 86400 * 365,
    fileSize: 200,
    snippet: 'A published piece of writing — newsletter essays, blog posts, articles.',
    wordCount: 50,
    relationships: {},
    icon: null,
    color: null,
    order: 7,
    outgoingLinks: [],
  },
  {
    path: '/Users/luca/Laputa/type/note.md',
    filename: 'note.md',
    title: 'Note',
    isA: 'Type',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: null,
    owner: null,
    cadence: null,
    archived: false,
    trashed: false,
    trashedAt: null,
    modifiedAt: now - 86400 * 90,
    createdAt: now - 86400 * 365,
    fileSize: 190,
    snippet: 'A general-purpose document — research notes, meeting notes, strategy docs.',
    wordCount: 60,
    relationships: {},
    icon: null,
    color: null,
    order: 8,
    outgoingLinks: [],
  },
  // --- Custom type documents ---
  {
    path: '/Users/luca/Laputa/type/recipe.md',
    filename: 'recipe.md',
    title: 'Recipe',
    isA: 'Type',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: null,
    owner: null,
    cadence: null,
    archived: false,
    trashed: false,
    trashedAt: null,
    modifiedAt: now - 86400 * 30,
    createdAt: now - 86400 * 365,
    fileSize: 250,
    snippet: 'A recipe for cooking or baking. Recipes have ingredients, steps, and serving info.',
    wordCount: 45,
    relationships: {},
    icon: 'cooking-pot',
    color: 'orange',
    order: 9,
    outgoingLinks: [],
  },
  {
    path: '/Users/luca/Laputa/type/book.md',
    filename: 'book.md',
    title: 'Book',
    isA: 'Type',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: null,
    owner: null,
    cadence: null,
    archived: false,
    trashed: false,
    trashedAt: null,
    modifiedAt: now - 86400 * 30,
    createdAt: now - 86400 * 365,
    fileSize: 220,
    snippet: 'A book you\'re reading or have read. Track reading progress, notes, and key takeaways.',
    wordCount: 190,
    relationships: {},
    icon: 'book-open',
    color: 'green',
    order: 10,
    outgoingLinks: [],
  },
  // --- Instances of custom types ---
  {
    path: '/Users/luca/Laputa/recipe/pasta-carbonara.md',
    filename: 'pasta-carbonara.md',
    title: 'Pasta Carbonara',
    isA: 'Recipe',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: null,
    owner: null,
    cadence: null,
    archived: false,
    trashed: false,
    trashedAt: null,
    modifiedAt: now - 86400 * 5,
    createdAt: now - 86400 * 10,
    fileSize: 420,
    snippet: 'Classic Roman pasta dish with eggs, pecorino, guanciale, and black pepper.',
    wordCount: 310,
    relationships: {
      'Type': ['[[type/recipe]]'],
    },
    icon: null,
    color: null,
    order: null,
    outgoingLinks: [],
  },
  {
    path: '/Users/luca/Laputa/book/designing-data-intensive-applications.md',
    filename: 'designing-data-intensive-applications.md',
    title: 'Designing Data-Intensive Applications',
    isA: 'Book',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: null,
    owner: null,
    cadence: null,
    archived: false,
    trashed: false,
    trashedAt: null,
    modifiedAt: now - 86400 * 14,
    createdAt: now - 86400 * 60,
    fileSize: 380,
    snippet: 'Essential reading for anyone building distributed systems. Covers replication, partitioning, transactions.',
    wordCount: 100,
    relationships: {
      'Type': ['[[type/book]]'],
    },
    icon: null,
    color: null,
    order: null,
    outgoingLinks: [],
  },
  // --- Trashed entries ---
  {
    path: '/Users/luca/Laputa/note/old-draft-notes.md',
    filename: 'old-draft-notes.md',
    title: 'Old Draft Notes',
    isA: 'Note',
    aliases: [],
    belongsTo: ['[[project/26q1-laputa-app]]'],
    relatedTo: [],
    status: null,
    owner: null,
    cadence: null,
    archived: false,
    trashed: true,
    trashedAt: now - 86400 * 5,
    modifiedAt: now - 86400 * 10,
    createdAt: null,
    fileSize: 280,
    snippet: 'Some rough draft content that is no longer relevant. Moving to trash.',
    wordCount: 100,
    relationships: {
      'Belongs to': ['[[project/26q1-laputa-app]]'],
      'Type': ['[[type/note]]'],
    },
    icon: null,
    color: null,
    order: null,
    outgoingLinks: [],
  },
  {
    path: '/Users/luca/Laputa/note/deprecated-api-notes.md',
    filename: 'deprecated-api-notes.md',
    title: 'Deprecated API Notes',
    isA: 'Note',
    aliases: [],
    belongsTo: [],
    relatedTo: [],
    status: null,
    owner: null,
    cadence: null,
    archived: false,
    trashed: true,
    trashedAt: now - 86400 * 35,
    modifiedAt: now - 86400 * 40,
    createdAt: null,
    fileSize: 190,
    snippet: 'Old API documentation for the v1 endpoint. Replaced by v2 docs.',
    wordCount: 85,
    relationships: {
      'Type': ['[[type/note]]'],
    },
    icon: null,
    color: null,
    order: null,
    outgoingLinks: [],
  },
  {
    path: '/Users/luca/Laputa/experiment/failed-seo-experiment.md',
    filename: 'failed-seo-experiment.md',
    title: 'Failed SEO Experiment',
    isA: 'Experiment',
    aliases: [],
    belongsTo: [],
    relatedTo: ['[[responsibility/grow-newsletter]]'],
    status: 'Dropped',
    owner: 'Luca Rossi',
    cadence: null,
    archived: false,
    trashed: true,
    trashedAt: now - 86400 * 10,
    modifiedAt: now - 86400 * 15,
    createdAt: null,
    fileSize: 340,
    snippet: 'Tried programmatic SEO pages. Results were negligible — trashing this.',
    wordCount: 120,
    relationships: {
      'Related to': ['[[responsibility/grow-newsletter]]'],
      'Type': ['[[type/experiment]]'],
    },
    icon: null,
    color: null,
    order: null,
    outgoingLinks: [],
  },
  // --- Archived entries ---
  {
    path: '/Users/luca/Laputa/project/25q3-website-redesign.md',
    filename: '25q3-website-redesign.md',
    title: 'Website Redesign',
    isA: 'Project',
    aliases: [],
    belongsTo: ['[[quarter/q3-2025]]'],
    relatedTo: [],
    status: 'Done',
    owner: 'Luca Rossi',
    cadence: null,
    archived: true,
    trashed: false,
    trashedAt: null,
    icon: null,
    color: null,
    order: null,
    outgoingLinks: [],
    modifiedAt: now - 86400 * 120,
    createdAt: now - 86400 * 200,
    fileSize: 680,
    snippet: 'Completed redesign of the company website. Migrated from WordPress to Next.js with improved performance and SEO.',
    wordCount: 342,
    relationships: {
      'Belongs to': ['[[quarter/q3-2025]]'],
      'Type': ['[[type/project]]'],
    },
  },
  {
    path: '/Users/luca/Laputa/experiment/twitter-thread-experiment.md',
    filename: 'twitter-thread-experiment.md',
    title: 'Twitter Thread Growth Experiment',
    isA: 'Experiment',
    aliases: [],
    belongsTo: [],
    relatedTo: ['[[responsibility/grow-newsletter]]'],
    status: 'Done',
    owner: 'Luca Rossi',
    cadence: null,
    archived: true,
    trashed: false,
    trashedAt: null,
    icon: null,
    color: null,
    order: null,
    outgoingLinks: [],
    modifiedAt: now - 86400 * 90,
    createdAt: now - 86400 * 150,
    fileSize: 520,
    snippet: 'Publishing 3 Twitter threads per week instead of 1 will increase newsletter signups by 50%. Result: only 12% increase.',
    wordCount: 215,
    relationships: {
      'Related to': ['[[responsibility/grow-newsletter]]'],
      'Type': ['[[type/experiment]]'],
    },
  },
]

// --- Bulk entry generator for large vault testing ---

const BULK_TYPES = ['Note', 'Project', 'Experiment', 'Responsibility', 'Procedure', 'Person', 'Event', 'Essay', 'Topic']
const BULK_ADJECTIVES = ['Quick', 'Advanced', 'Daily', 'Weekly', 'Annual', 'Draft', 'Final', 'Revised', 'Archived', 'New']
const BULK_NOUNS = ['Meeting', 'Strategy', 'Review', 'Plan', 'Analysis', 'Summary', 'Report', 'Guide', 'Checklist', 'Template', 'Framework', 'Workflow', 'Retrospective', 'Brainstorm', 'Proposal']
const BULK_SNIPPETS = [
  'Key findings from the latest analysis session.',
  'Notes on process improvements and next steps.',
  'Summary of decisions made during the review.',
  'Action items and follow-ups from discussion.',
  'Draft outline for upcoming deliverable.',
  'Reference material for the ongoing initiative.',
  'Tracking progress on quarterly objectives.',
  'Comparison of different approaches considered.',
]

function generateBulkEntries(count: number): VaultEntry[] {
  const entries: VaultEntry[] = []
  for (let i = 0; i < count; i++) {
    const type = BULK_TYPES[i % BULK_TYPES.length]
    const adj = BULK_ADJECTIVES[i % BULK_ADJECTIVES.length]
    const noun = BULK_NOUNS[i % BULK_NOUNS.length]
    const title = `${adj} ${noun} ${i + 1}`
    const slug = title.toLowerCase().replace(/\s+/g, '-')
    const folder = type.toLowerCase()
    entries.push({
      path: `/Users/luca/Laputa/${folder}/${slug}.md`,
      filename: `${slug}.md`,
      title,
      isA: type,
      aliases: [],
      belongsTo: [],
      relatedTo: [],
      status: i % 4 === 0 ? 'Active' : i % 4 === 1 ? 'Paused' : i % 4 === 2 ? 'Done' : null,
      owner: i % 3 === 0 ? 'Luca Rossi' : null,
      cadence: null,
      archived: false,
      trashed: false,
      trashedAt: null,
      modifiedAt: now - i * 600,
      createdAt: now - 86400 * 90 - i * 3600,
      fileSize: 500 + (i % 2000),
      snippet: BULK_SNIPPETS[i % BULK_SNIPPETS.length],
      wordCount: 50 + (i % 200),
      relationships: {},
      icon: null,
      color: null,
      order: null,
      outgoingLinks: [],
    })
  }
  return entries
}

// Append 9000 generated entries for realistic large-vault testing
MOCK_ENTRIES.push(...generateBulkEntries(9000))
