ln-723-mockdata-migrator
Type: L3 Worker Category: 7XX Project Bootstrap Parent: ln-720-structure-migrator
Migrates mock data from ORM schemas to .NET MockData classes with realistic sample data.
Purpose & Scope
Aspect Description
Input ORM schema files (Drizzle, Prisma, TypeORM)
Output C# MockData static classes
Primary ORM Drizzle (others supported)
Scope boundaries:
-
Parses ORM schema definitions
-
Generates C# entities and MockData classes
-
Creates realistic sample data
-
Does not generate database migrations or EF Core configs
Workflow
Phase Name Actions Output
1 Parse Schema Read ORM file, extract table definitions Entity model
2 Map Types Apply type mapping rules, detect nullable C# type definitions
3 Generate MockData Create static class, generate sample data MockData.cs files
4 Verify Compile check, relationship validation Valid C# code
Phase 1: Parse Schema
Extract entity definitions from ORM schema.
Step Action Reference
1.1 Locate schema file(s) —
1.2 Identify ORM type (Drizzle/Prisma/TypeORM) Detect by syntax
1.3 Extract table definitions drizzle_patterns.md
1.4 Extract column definitions drizzle_patterns.md
1.5 Identify constraints (PK, FK, nullable) drizzle_patterns.md
1.6 Extract enum definitions drizzle_patterns.md
Output: Entity model with columns, types, and constraints.
Phase 2: Map Types
Convert ORM types to C# types.
Step Action Reference
2.1 Map column types to C# type_mapping.md
2.2 Determine nullable status type_mapping.md
2.3 Identify primary keys type_mapping.md
2.4 Map foreign keys relationship_mapping.md
2.5 Transform names (snake_case → PascalCase) drizzle_patterns.md
Type mapping summary:
ORM Type C# Type Nullable Rule
uuid Guid No (PK), Depends (FK)
varchar string Check .notNull()
integer int No
boolean bool No
timestamp DateTime Depends
Phase 3: Generate MockData
Create C# MockData class with sample data.
Step Action Reference
3.1 Create MockData class data_generation.md
3.2 Generate GUIDs for entities data_generation.md
3.3 Generate sample data per field data_generation.md
3.4 Ensure FK relationships valid relationship_mapping.md
3.5 Create accessor methods data_generation.md
Generation order by dependency:
Order Entity Type Generate After
1 Root entities (no FK) First
2 First-level children Parents exist
3 Second-level children Grandparents exist
N Deepest children All ancestors exist
Phase 4: Verify
Validate generated code.
Check Method Expected
Syntax valid Compile check No errors
FKs valid Cross-reference All FKs point to existing IDs
Types correct Type analysis Proper C# types
Names follow convention Pattern check PascalCase
Supported ORM Detection
ORM Detection Pattern
Drizzle pgTable() , mysqlTable() , sqliteTable()
Prisma model X { syntax
TypeORM @Entity() , @Column() decorators
Entity Transformation Rules
Source Target Transformation
Table name (plural, snake) Class name (singular, Pascal) user_profiles → UserProfile
Column name (snake) Property name (Pascal) created_at → CreatedAt
Enum name Enum type (Pascal) status_enum → StatusEnum
FK column Navigation property user_id → UserId
MockData Class Structure
Component Purpose
Private static list Holds immutable mock data
GetAll() method Returns full list as IEnumerable
GetById(Guid id) Finds single entity by ID
GetBy{FK}Id(Guid id) Filters by foreign key
Sample Data Guidelines
Field Type Sample Count Distribution
Root entities 3-5 items Varied status/priority
Child entities 5-10 items Distributed across parents
Leaf entities 10-20 items Realistic variety
Critical Rules
-
Single Responsibility: Generate only MockData, no database code
-
Idempotent: Can re-run to regenerate
-
Valid Relationships: All FKs must reference existing parent IDs
-
Realistic Data: Use domain-appropriate values, not random strings
-
Generation Order: Parents before children
-
Consistent GUIDs: Use fixed GUIDs for reproducibility
Definition of Done
-
Schema file parsed successfully
-
All tables/entities extracted
-
Type mappings applied correctly
-
MockData class generated per feature/entity group
-
Sample data includes 5-10 items per entity
-
Foreign keys reference valid parent IDs
-
Accessor methods generated (GetAll, GetById)
-
Code compiles without errors
Risk Mitigation
Risk Detection Mitigation
Parse failure Exception during parse Support multiple schema formats
Invalid type mapping Unknown ORM type Log warning, use string as fallback
FK mismatch FK references non-existent ID Generate parents first, validate after
Name collision Duplicate class names Prefix with feature name
Circular references Self-referencing with cycles Limit depth, validate graph
Reference Files
File Purpose
references/type_mapping.md
ORM to C# type conversion rules
references/drizzle_patterns.md
Drizzle schema parsing patterns
references/data_generation.md
Realistic sample data patterns
references/relationship_mapping.md
FK handling and generation order
Version: 2.0.0 Last Updated: 2026-01-10