go-faker/faker.go
selamanapps 4ff98a40d4 feat: initial go-faker - Ethiopian fake data generator
- High-performance batch data generation (~150k records/sec)
- Seeded randomness for reproducible load tests
- Rich Ethiopian data: names, phones (+251), cities, regions
- Four data types: person, address, product, analytics
- Three modes: CLI, Go library, HTTP API
- Project skill available in .skills/go-faker/SKILL.md
2026-05-02 02:59:43 +03:00

50 lines
No EOL
1.4 KiB
Go

package faker
import (
"go-faker/generator"
"go-faker/types"
)
type Faker struct {
inner *generator.Faker
}
func New(seed string) *Faker {
return &Faker{inner: generator.New(seed)}
}
func (f *Faker) GeneratePerson(fields []string) map[string]any {
return f.inner.GeneratePerson(fields)
}
func (f *Faker) GenerateAddress(fields []string) map[string]any {
return f.inner.GenerateAddress(fields)
}
func (f *Faker) GenerateProduct(fields []string) map[string]any {
return f.inner.GenerateProduct(fields)
}
func (f *Faker) GenerateAnalytics(fields []string) map[string]any {
return f.inner.GenerateAnalytics(fields)
}
func (f *Faker) GenerateBatch(count int, dataType types.DataType, fields []string) []map[string]any {
return f.inner.GenerateBatch(count, dataType, fields)
}
func (f *Faker) GeneratePersonStruct(count int, fields []string) []map[string]any {
return f.inner.GenerateBatch(count, types.TypePerson, fields)
}
func (f *Faker) GenerateAddressStruct(count int, fields []string) []map[string]any {
return f.inner.GenerateBatch(count, types.TypeAddress, fields)
}
func (f *Faker) GenerateProductStruct(count int, fields []string) []map[string]any {
return f.inner.GenerateBatch(count, types.TypeProduct, fields)
}
func (f *Faker) GenerateAnalyticsStruct(count int, fields []string) []map[string]any {
return f.inner.GenerateBatch(count, types.TypeAnalytics, fields)
}