Skip to content

Commit 9b36fcb

Browse files
committed
feat: Add DataGenerator tool and remove legacy generators
- Add comprehensive DataGenerator with 10 built-in presets: - UUID, ULID, Random String, Lorem Ipsum - User Profile, E-commerce Product - API Response, SQL Insert, Log Entries, Credit Card - Implement template-based generation with Faker library - Support batch generation (10-1000 records) - Add multiple output formats: JSON, XML, CSV, YAML, Raw - Add customizable separators: newline, tab, comma, custom, none - Add Single/Batch mode toggle - Add comprehensive help documentation with syntax and function reference - Remove legacy generators replaced by DataGenerator: - RandomStringGenerator - UuidGenerator - LoremIpsumGenerator - Backend: Go templates + gofakeit library with 89% test coverage - Frontend: Refactored into modular component structure - Update documentation and sidebar menu
1 parent b25cf6d commit 9b36fcb

31 files changed

Lines changed: 3261 additions & 242 deletions

AGENTS.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -94,19 +94,19 @@ func TestConverter(t *testing.T) {
9494
Config: map[string]interface{}{"subMode": tt.subMode},
9595
}
9696
result, err := conv.Convert(req)
97-
97+
9898
if tt.expectErr {
9999
if err == nil {
100100
t.Errorf("Expected error but got none")
101101
}
102102
return
103103
}
104-
104+
105105
if err != nil {
106106
t.Errorf("Unexpected error: %v", err)
107107
return
108108
}
109-
109+
110110
if result != tt.expected {
111111
t.Errorf("Expected '%s', got '%s'", tt.expected, result)
112112
}
@@ -382,7 +382,8 @@ These guidelines are intended for AI assistants (like opencode) working on this
382382
1. **Run linting & formatting** – Execute any available lint/format commands (see section 8).
383383
2. **Test the tool** – Verify functionality with `wails dev`.
384384
3. **Update `TOOL_STATUS.md`** – If you refactored a tool, update its status and add a completion note.
385-
4. **Commit changes** – Use descriptive commit messages that reference the tool name and changes made.
385+
4. **Update `README.md`** - If features have been changed, modify features list and its details.
386+
5. **Commit changes** – Use descriptive commit messages that reference the tool name and changes made.
386387
387388
### Important Notes
388389
- **Never commit secrets** – Avoid committing `.env`, credentials, or any sensitive data.

README.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ The central hub with 45+ algorithms across 5 categories:
3737
|------|-------------|
3838
| **JWT Debugger** | Decode and verify JWT tokens with header/payload inspection |
3939
| **Barcode / QR Code Generator** | Create QR codes and 1D barcodes (EAN-13, EAN-8, Code 128, Code 39) with preview and download |
40-
| **UUID / ULID Generator** | Generate random UUID v4 or ULID values |
40+
| **Data Generator** | Generate mock data with templates using Faker library (UUID, ULID, Random String, Lorem Ipsum, User Profiles, API responses, SQL inserts, and more) |
4141
| **JSON Formatter** | Pretty-print or minify JSON with syntax validation |
4242
| **RegExp Tester** | Test regular expressions with real-time matching |
4343
| **Unix Time Converter** | Convert between Unix timestamps and human-readable dates |
@@ -47,8 +47,6 @@ The central hub with 45+ algorithms across 5 categories:
4747
| **Text Diff Checker** | Compare two text blocks and highlight differences |
4848
| **Line Sort / Dedupe** | Sort lines, remove duplicates, trim whitespace |
4949
| **String Inspector** | Count characters, words, lines, bytes, and sentences |
50-
| **Lorem Ipsum Generator** | Generate placeholder text |
51-
| **Random String Generator** | Generate random alphanumeric strings with custom length |
5250
| **PHP Serializer** | PHP serialization/unserialization |
5351
| **URL Tools** | Parse URLs, extract components |
5452

TOOL_STATUS.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,12 @@ This document tracks the refactoring and development status of each tool compone
1717
| JwtDebugger | 🟢 Done | Uses component abstraction system (ToolLayout, ToolTextArea, ToolInputGroup), toggleable layout, consistent button styling with icons (MagicWand, Security, Code), enhanced tabs (custom mode tabs, improved JSON/Claims tabs), resizable textareas with constraints, proper error handling | Completed 2026-01-25 |
1818
| **TextBasedConverter** | 🟢 Done | Unified tool with 45+ algorithms across 5 categories (encrypt, encode, escape, hash, convert). Features: Common Tags (Quick Select), Base64 Image Preview, All Hashes view, Smart ConfigurationPane, 5 Escape methods. Backend: hierarchical structure with 83 comprehensive tests. Phase 2 & 3 complete | Completed 2026-01-31 |
1919
| BarcodeGenerator | 🟢 Done | Multi-standard barcode generator (QR, EAN-13, EAN-8, Code128, Code39). Features: configurable size, error correction levels for QR, client-side validation, download button. | Completed 2026-01-31 |
20+
| **DataGenerator** | 🟢 Done | Template-based mock data generator with Faker integration. Features: 10 built-in presets (UUID, ULID, Random String, Lorem Ipsum, User Profile, E-commerce Product, API Response, SQL Insert, Log Entries, Credit Card), batch generation (10-1000 records), multiple output formats (JSON, XML, CSV, YAML), comprehensive help documentation with 4 tabs (Quick Start, Syntax, Faker Reference, Examples). Backend: Go templates + gofakeit library with 80+ faker functions. Replaces: RandomStringGenerator, UuidGenerator, LoremIpsumGenerator | Completed 2026-01-31 |
2021
| CronJobParser | 🔴 Not Started | Legacy implementation | - |
2122
| JsonFormatter | 🔴 Not Started | Legacy implementation | - |
2223
| LineSortDedupe | 🔴 Not Started | Legacy implementation | - |
23-
| LoremIpsumGenerator | 🔴 Not Started | Legacy implementation | - |
2424
| PhpJsonConverter | 🔴 Not Started | Legacy implementation | - |
2525
| PhpSerializer | 🔴 Not Started | Legacy implementation | - |
26-
| RandomStringGenerator | 🔴 Not Started | Legacy implementation | - |
2726
| RegExpTester | 🔴 Not Started | Legacy implementation | - |
2827
| SqlFormatter | 🔴 Not Started | Legacy implementation | - |
2928
| StringCaseConverter | 🔴 Not Started | Legacy implementation | - |
@@ -32,7 +31,6 @@ This document tracks the refactoring and development status of each tool compone
3231
| UnixTimeConverter | 🔴 Not Started | Legacy implementation | - |
3332
| UrlParser | 🔴 Not Started | Legacy implementation | - |
3433
| UrlTools | 🔴 Not Started | Legacy implementation | - |
35-
| UuidGenerator | 🔴 Not Started | Legacy implementation | - |
3634

3735
---
3836

coverage.out

Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
mode: set
2+
dev-toolbox/internal/datagenerator/engine.go:19.34,23.2 1 1
3+
dev-toolbox/internal/datagenerator/engine.go:26.52,30.2 1 1
4+
dev-toolbox/internal/datagenerator/engine.go:33.59,37.25 1 1
5+
dev-toolbox/internal/datagenerator/engine.go:37.25,39.4 1 1
6+
dev-toolbox/internal/datagenerator/engine.go:84.33,86.4 1 1
7+
dev-toolbox/internal/datagenerator/engine.go:87.43,89.4 1 1
8+
dev-toolbox/internal/datagenerator/engine.go:93.27,93.73 1 1
9+
dev-toolbox/internal/datagenerator/engine.go:94.27,94.79 1 1
10+
dev-toolbox/internal/datagenerator/engine.go:95.27,97.4 1 1
11+
dev-toolbox/internal/datagenerator/engine.go:98.29,100.4 1 1
12+
dev-toolbox/internal/datagenerator/engine.go:104.30,104.61 1 1
13+
dev-toolbox/internal/datagenerator/engine.go:105.30,105.73 1 1
14+
dev-toolbox/internal/datagenerator/engine.go:106.53,107.21 1 1
15+
dev-toolbox/internal/datagenerator/engine.go:108.17,110.32 2 1
16+
dev-toolbox/internal/datagenerator/engine.go:110.32,112.6 1 1
17+
dev-toolbox/internal/datagenerator/engine.go:113.5,113.36 1 1
18+
dev-toolbox/internal/datagenerator/engine.go:114.21,116.32 2 0
19+
dev-toolbox/internal/datagenerator/engine.go:116.32,118.6 1 0
20+
dev-toolbox/internal/datagenerator/engine.go:119.5,119.40 1 0
21+
dev-toolbox/internal/datagenerator/engine.go:120.22,122.32 2 0
22+
dev-toolbox/internal/datagenerator/engine.go:122.32,124.6 1 0
23+
dev-toolbox/internal/datagenerator/engine.go:125.5,125.44 1 0
24+
dev-toolbox/internal/datagenerator/engine.go:126.12,127.44 1 0
25+
dev-toolbox/internal/datagenerator/engine.go:154.43,156.4 1 1
26+
dev-toolbox/internal/datagenerator/engine.go:159.50,160.25 1 1
27+
dev-toolbox/internal/datagenerator/engine.go:160.25,162.5 1 0
28+
dev-toolbox/internal/datagenerator/engine.go:163.4,163.53 1 1
29+
dev-toolbox/internal/datagenerator/engine.go:167.36,169.31 2 1
30+
dev-toolbox/internal/datagenerator/engine.go:169.31,171.5 1 1
31+
dev-toolbox/internal/datagenerator/engine.go:172.4,172.17 1 1
32+
dev-toolbox/internal/datagenerator/engine.go:174.39,176.4 1 1
33+
dev-toolbox/internal/datagenerator/engine.go:177.60,178.31 1 1
34+
dev-toolbox/internal/datagenerator/engine.go:178.31,180.5 1 1
35+
dev-toolbox/internal/datagenerator/engine.go:181.4,181.14 1 0
36+
dev-toolbox/internal/datagenerator/engine.go:187.107,189.15 2 1
37+
dev-toolbox/internal/datagenerator/engine.go:189.15,191.3 1 1
38+
dev-toolbox/internal/datagenerator/engine.go:192.2,192.15 1 1
39+
dev-toolbox/internal/datagenerator/engine.go:192.15,194.3 1 1
40+
dev-toolbox/internal/datagenerator/engine.go:195.2,195.13 1 1
41+
dev-toolbox/internal/datagenerator/engine.go:195.13,197.3 1 1
42+
dev-toolbox/internal/datagenerator/engine.go:198.2,198.13 1 1
43+
dev-toolbox/internal/datagenerator/engine.go:198.13,200.3 1 1
44+
dev-toolbox/internal/datagenerator/engine.go:202.2,202.17 1 1
45+
dev-toolbox/internal/datagenerator/engine.go:202.17,204.3 1 1
46+
dev-toolbox/internal/datagenerator/engine.go:206.2,207.30 2 1
47+
dev-toolbox/internal/datagenerator/engine.go:207.30,209.3 1 1
48+
dev-toolbox/internal/datagenerator/engine.go:210.2,210.23 1 1
49+
dev-toolbox/internal/datagenerator/engine.go:219.26,223.2 1 1
50+
dev-toolbox/internal/datagenerator/engine.go:226.44,230.2 1 1
51+
dev-toolbox/internal/datagenerator/engine.go:233.80,234.42 1 1
52+
dev-toolbox/internal/datagenerator/engine.go:234.42,236.3 1 1
53+
dev-toolbox/internal/datagenerator/engine.go:239.2,242.16 2 1
54+
dev-toolbox/internal/datagenerator/engine.go:242.16,244.3 1 1
55+
dev-toolbox/internal/datagenerator/engine.go:247.2,248.49 2 1
56+
dev-toolbox/internal/datagenerator/engine.go:248.49,250.3 1 0
57+
dev-toolbox/internal/datagenerator/engine.go:252.2,252.26 1 1
58+
dev-toolbox/internal/datagenerator/engine.go:256.53,257.42 1 1
59+
dev-toolbox/internal/datagenerator/engine.go:257.42,259.3 1 1
60+
dev-toolbox/internal/datagenerator/engine.go:261.2,265.16 2 1
61+
dev-toolbox/internal/datagenerator/engine.go:265.16,267.3 1 1
62+
dev-toolbox/internal/datagenerator/engine.go:269.2,269.12 1 1
63+
dev-toolbox/internal/datagenerator/engine.go:273.120,274.41 1 1
64+
dev-toolbox/internal/datagenerator/engine.go:274.41,276.3 1 1
65+
dev-toolbox/internal/datagenerator/engine.go:279.2,280.30 2 1
66+
dev-toolbox/internal/datagenerator/engine.go:280.30,282.3 1 1
67+
dev-toolbox/internal/datagenerator/engine.go:283.2,286.34 3 1
68+
dev-toolbox/internal/datagenerator/engine.go:286.34,292.17 4 1
69+
dev-toolbox/internal/datagenerator/engine.go:292.17,294.4 1 0
70+
dev-toolbox/internal/datagenerator/engine.go:295.3,295.22 1 1
71+
dev-toolbox/internal/datagenerator/engine.go:298.2,298.21 1 1
72+
dev-toolbox/internal/datagenerator/formatter.go:17.32,19.2 1 1
73+
dev-toolbox/internal/datagenerator/formatter.go:22.92,23.33 1 1
74+
dev-toolbox/internal/datagenerator/formatter.go:24.14,25.28 1 1
75+
dev-toolbox/internal/datagenerator/formatter.go:26.13,27.27 1 1
76+
dev-toolbox/internal/datagenerator/formatter.go:28.13,29.27 1 1
77+
dev-toolbox/internal/datagenerator/formatter.go:30.14,31.28 1 1
78+
dev-toolbox/internal/datagenerator/formatter.go:32.17,33.38 1 1
79+
dev-toolbox/internal/datagenerator/formatter.go:34.10,35.30 1 1
80+
dev-toolbox/internal/datagenerator/formatter.go:40.63,43.28 2 1
81+
dev-toolbox/internal/datagenerator/formatter.go:43.28,45.60 2 1
82+
dev-toolbox/internal/datagenerator/formatter.go:45.60,48.4 1 1
83+
dev-toolbox/internal/datagenerator/formatter.go:48.9,50.4 1 0
84+
dev-toolbox/internal/datagenerator/formatter.go:53.2,54.16 2 1
85+
dev-toolbox/internal/datagenerator/formatter.go:54.16,56.3 1 0
86+
dev-toolbox/internal/datagenerator/formatter.go:58.2,58.28 1 1
87+
dev-toolbox/internal/datagenerator/formatter.go:62.62,74.25 4 1
88+
dev-toolbox/internal/datagenerator/formatter.go:74.25,76.3 1 1
89+
dev-toolbox/internal/datagenerator/formatter.go:78.2,79.16 2 1
90+
dev-toolbox/internal/datagenerator/formatter.go:79.16,81.3 1 0
91+
dev-toolbox/internal/datagenerator/formatter.go:83.2,83.41 1 1
92+
dev-toolbox/internal/datagenerator/formatter.go:87.62,91.28 3 1
93+
dev-toolbox/internal/datagenerator/formatter.go:91.28,92.54 1 1
94+
dev-toolbox/internal/datagenerator/formatter.go:92.54,94.4 1 0
95+
dev-toolbox/internal/datagenerator/formatter.go:97.2,98.26 2 1
96+
dev-toolbox/internal/datagenerator/formatter.go:102.63,104.16 2 1
97+
dev-toolbox/internal/datagenerator/formatter.go:104.16,106.3 1 0
98+
dev-toolbox/internal/datagenerator/formatter.go:108.2,108.28 1 1
99+
dev-toolbox/internal/datagenerator/formatter.go:112.80,114.19 2 1
100+
dev-toolbox/internal/datagenerator/formatter.go:115.15,116.12 1 1
101+
dev-toolbox/internal/datagenerator/formatter.go:117.13,118.13 1 1
102+
dev-toolbox/internal/datagenerator/formatter.go:119.14,120.11 1 1
103+
dev-toolbox/internal/datagenerator/formatter.go:121.17,122.13 1 1
104+
dev-toolbox/internal/datagenerator/formatter.go:123.10,125.18 1 1
105+
dev-toolbox/internal/datagenerator/formatter.go:127.2,127.37 1 1
106+
dev-toolbox/internal/datagenerator/formatter.go:131.62,133.59 2 1
107+
dev-toolbox/internal/datagenerator/formatter.go:133.59,136.3 1 1
108+
dev-toolbox/internal/datagenerator/formatter.go:138.2,139.16 2 1
109+
dev-toolbox/internal/datagenerator/formatter.go:139.16,141.3 1 0
110+
dev-toolbox/internal/datagenerator/formatter.go:143.2,143.28 1 1
111+
dev-toolbox/internal/datagenerator/presets.go:4.43,198.2 1 1
112+
dev-toolbox/internal/datagenerator/presets.go:201.54,202.45 1 1
113+
dev-toolbox/internal/datagenerator/presets.go:202.45,203.22 1 1
114+
dev-toolbox/internal/datagenerator/presets.go:203.22,205.4 1 1
115+
dev-toolbox/internal/datagenerator/presets.go:207.2,207.32 1 1
116+
dev-toolbox/internal/datagenerator/service.go:22.53,27.2 1 1
117+
dev-toolbox/internal/datagenerator/service.go:30.89,32.49 1 1
118+
dev-toolbox/internal/datagenerator/service.go:32.49,36.3 1 1
119+
dev-toolbox/internal/datagenerator/service.go:39.2,39.56 1 1
120+
dev-toolbox/internal/datagenerator/service.go:39.56,43.3 1 1
121+
dev-toolbox/internal/datagenerator/service.go:46.2,47.40 2 1
122+
dev-toolbox/internal/datagenerator/service.go:47.40,48.28 1 1
123+
dev-toolbox/internal/datagenerator/service.go:49.16,51.28 1 1
124+
dev-toolbox/internal/datagenerator/service.go:51.28,53.5 1 1
125+
dev-toolbox/internal/datagenerator/service.go:53.10,55.5 1 0
126+
dev-toolbox/internal/datagenerator/service.go:56.13,57.26 1 1
127+
dev-toolbox/internal/datagenerator/service.go:58.15,59.26 1 0
128+
dev-toolbox/internal/datagenerator/service.go:60.11,61.30 1 0
129+
dev-toolbox/internal/datagenerator/service.go:66.2,70.16 4 1
130+
dev-toolbox/internal/datagenerator/service.go:70.16,75.3 1 0
131+
dev-toolbox/internal/datagenerator/service.go:78.2,79.16 2 1
132+
dev-toolbox/internal/datagenerator/service.go:79.16,84.3 1 1
133+
dev-toolbox/internal/datagenerator/service.go:87.2,87.32 1 1
134+
dev-toolbox/internal/datagenerator/service.go:87.32,88.65 1 1
135+
dev-toolbox/internal/datagenerator/service.go:88.65,90.4 1 1
136+
dev-toolbox/internal/datagenerator/service.go:93.2,97.8 1 1
137+
dev-toolbox/internal/datagenerator/service.go:101.71,106.2 2 1
138+
dev-toolbox/internal/datagenerator/service.go:109.93,110.52 1 1
139+
dev-toolbox/internal/datagenerator/service.go:110.52,116.3 1 1
140+
dev-toolbox/internal/datagenerator/service.go:118.2,121.8 1 1

data_generator_service.go

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package main
2+
3+
import (
4+
"context"
5+
6+
"dev-toolbox/internal/datagenerator"
7+
)
8+
9+
// DataGeneratorService provides data generation functionality via Wails
10+
type DataGeneratorService struct {
11+
ctx context.Context
12+
svc datagenerator.DataGeneratorService
13+
}
14+
15+
// NewDataGeneratorService creates a new DataGeneratorService
16+
func NewDataGeneratorService() *DataGeneratorService {
17+
return &DataGeneratorService{
18+
svc: datagenerator.NewDataGeneratorService(),
19+
}
20+
}
21+
22+
// startup is called when the service starts
23+
func (d *DataGeneratorService) startup(ctx context.Context) {
24+
d.ctx = ctx
25+
}
26+
27+
// Generate generates data based on the provided request
28+
func (d *DataGeneratorService) Generate(req datagenerator.GenerateRequest) datagenerator.GenerateResponse {
29+
resp, err := d.svc.Generate(req)
30+
if err != nil {
31+
return datagenerator.GenerateResponse{
32+
Error: err.Error(),
33+
}
34+
}
35+
return *resp
36+
}
37+
38+
// GetPresets returns all available template presets
39+
func (d *DataGeneratorService) GetPresets() datagenerator.PresetsResponse {
40+
resp, err := d.svc.GetPresets()
41+
if err != nil {
42+
return datagenerator.PresetsResponse{
43+
Error: err.Error(),
44+
}
45+
}
46+
return *resp
47+
}
48+
49+
// ValidateTemplate validates a template string
50+
func (d *DataGeneratorService) ValidateTemplate(template string) datagenerator.ValidationResult {
51+
resp, err := d.svc.ValidateTemplate(template)
52+
if err != nil {
53+
return datagenerator.ValidationResult{
54+
Valid: false,
55+
Error: err.Error(),
56+
}
57+
}
58+
return *resp
59+
}

go.mod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ go 1.24.0
44

55
require (
66
github.com/boombuler/barcode v1.1.0
7+
github.com/brianvoe/gofakeit/v7 v7.14.0
78
github.com/btcsuite/btcutil v1.0.2
89
github.com/golang-jwt/jwt/v5 v5.3.0
910
github.com/gomarkdown/markdown v0.0.0-20250810172220-2e2c11897d1a

go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ github.com/bep/debounce v1.2.1 h1:v67fRdBA9UQu2NhLFXrSg0Brw7CexQekrBwDMM8bzeY=
33
github.com/bep/debounce v1.2.1/go.mod h1:H8yggRPQKLUhUoqrJC1bO2xNya7vanpDl7xR3ISbCJ0=
44
github.com/boombuler/barcode v1.1.0 h1:ChaYjBR63fr4LFyGn8E8nt7dBSt3MiU3zMOZqFvVkHo=
55
github.com/boombuler/barcode v1.1.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
6+
github.com/brianvoe/gofakeit/v7 v7.14.0 h1:R8tmT/rTDJmD2ngpqBL9rAKydiL7Qr2u3CXPqRt59pk=
7+
github.com/brianvoe/gofakeit/v7 v7.14.0/go.mod h1:QXuPeBw164PJCzCUZVmgpgHJ3Llj49jSLVkKPMtxtxA=
68
github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ=
79
github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA=
810
github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg=

internal/datagenerator/dto.go

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package datagenerator
2+
3+
// Variable represents a configurable variable in a template
4+
type Variable struct {
5+
Name string `json:"name"`
6+
Type string `json:"type"` // string, number, select, boolean
7+
Default interface{} `json:"default"`
8+
Options []string `json:"options,omitempty"`
9+
Min int `json:"min,omitempty"`
10+
Max int `json:"max,omitempty"`
11+
Description string `json:"description,omitempty"`
12+
}
13+
14+
// TemplatePreset represents a built-in template
15+
type TemplatePreset struct {
16+
ID string `json:"id"`
17+
Name string `json:"name"`
18+
Description string `json:"description"`
19+
Template string `json:"template"`
20+
Variables []Variable `json:"variables"`
21+
}
22+
23+
// GenerateRequest represents a request to generate data
24+
type GenerateRequest struct {
25+
Template string `json:"template"`
26+
Variables map[string]interface{} `json:"variables"`
27+
BatchCount int `json:"batchCount"` // 10-1000
28+
OutputFormat string `json:"outputFormat"` // json, xml, csv, yaml, raw
29+
Separator string `json:"separator"` // newline, comma, none (for raw format)
30+
}
31+
32+
// GenerateResponse represents the response from data generation
33+
type GenerateResponse struct {
34+
Output string `json:"output"`
35+
Count int `json:"count"`
36+
Error string `json:"error,omitempty"`
37+
Duration int64 `json:"durationMs"` // Generation time in milliseconds
38+
}
39+
40+
// ValidationResult represents template validation result
41+
type ValidationResult struct {
42+
Valid bool `json:"valid"`
43+
Error string `json:"error,omitempty"`
44+
Message string `json:"message,omitempty"`
45+
}
46+
47+
// PresetsResponse represents the response with all presets
48+
type PresetsResponse struct {
49+
Presets []TemplatePreset `json:"presets"`
50+
Error string `json:"error,omitempty"`
51+
}

0 commit comments

Comments
 (0)