niki/vendor/github.com/brianvoe/gofakeit/v7/car.go

170 lines
5.7 KiB
Go

package gofakeit
// CarInfo is a struct dataset of all car information
type CarInfo struct {
Type string `json:"type" xml:"type"`
Fuel string `json:"fuel" xml:"fuel"`
Transmission string `json:"transmission" xml:"transmission"`
Brand string `json:"brand" xml:"brand"`
Model string `json:"model" xml:"model"`
Year int `json:"year" xml:"year"`
}
// Car will generate a struct with car information
func Car() *CarInfo { return car(GlobalFaker) }
// Car will generate a struct with car information
func (f *Faker) Car() *CarInfo { return car(f) }
func car(f *Faker) *CarInfo {
return &CarInfo{
Type: carType(f),
Fuel: carFuelType(f),
Transmission: carTransmissionType(f),
Brand: carMaker(f),
Model: carModel(f),
Year: year(f),
}
}
// CarType will generate a random car type string
func CarType() string { return carType(GlobalFaker) }
// CarType will generate a random car type string
func (f *Faker) CarType() string { return carType(f) }
func carType(f *Faker) string { return getRandValue(f, []string{"car", "type"}) }
// CarFuelType will return a random fuel type
func CarFuelType() string { return carFuelType(GlobalFaker) }
// CarFuelType will return a random fuel type
func (f *Faker) CarFuelType() string { return carFuelType(f) }
func carFuelType(f *Faker) string { return getRandValue(f, []string{"car", "fuel_type"}) }
// CarTransmissionType will return a random transmission type
func CarTransmissionType() string { return carTransmissionType(GlobalFaker) }
// CarTransmissionType will return a random transmission type
func (f *Faker) CarTransmissionType() string { return carTransmissionType(f) }
func carTransmissionType(f *Faker) string {
return getRandValue(f, []string{"car", "transmission_type"})
}
// CarMaker will return a random car maker
func CarMaker() string { return carMaker(GlobalFaker) }
// CarMaker will return a random car maker
func (f *Faker) CarMaker() string { return carMaker(f) }
func carMaker(f *Faker) string { return getRandValue(f, []string{"car", "maker"}) }
// CarModel will return a random car model
func CarModel() string { return carModel(GlobalFaker) }
// CarModel will return a random car model
func (f *Faker) CarModel() string { return carModel(f) }
func carModel(f *Faker) string { return getRandValue(f, []string{"car", "model"}) }
func addCarLookup() {
AddFuncLookup("car", Info{
Display: "Car",
Category: "car",
Description: "Wheeled motor vehicle used for transportation",
Example: `{
"type": "Passenger car mini",
"fuel": "Gasoline",
"transmission": "Automatic",
"brand": "Fiat",
"model": "Freestyle Fwd",
"year": 1991
}`,
Output: "map[string]any",
ContentType: "application/json",
Aliases: []string{"vehicle", "automobile", "transportation", "motor", "wheeled"},
Keywords: []string{"used", "passenger", "mini", "gasoline", "automatic", "fiat", "freestyle", "fwd"},
Generate: func(f *Faker, m *MapParams, info *Info) (any, error) {
return car(f), nil
},
})
AddFuncLookup("cartype", Info{
Display: "Car Type",
Category: "car",
Description: "Classification of cars based on size, use, or body style",
Example: "Passenger car mini",
Output: "string",
Aliases: []string{"classification", "size", "body", "style", "vehicle", "category"},
Keywords: []string{"car", "based", "passenger", "mini", "suv", "sedan", "hatchback", "convertible", "coupe"},
Generate: func(f *Faker, m *MapParams, info *Info) (any, error) {
return carType(f), nil
},
})
AddFuncLookup("carfueltype", Info{
Display: "Car Fuel Type",
Category: "car",
Description: "Type of energy source a car uses",
Example: "CNG",
Output: "string",
Aliases: []string{"energy", "source", "power", "vehicle"},
Keywords: []string{"car", "fuel", "uses", "cng", "gasoline", "diesel", "electric", "hybrid", "hydrogen", "ethanol"},
Generate: func(f *Faker, m *MapParams, info *Info) (any, error) {
return carFuelType(f), nil
},
})
AddFuncLookup("cartransmissiontype", Info{
Display: "Car Transmission Type",
Category: "car",
Description: "Mechanism a car uses to transmit power from the engine to the wheels",
Example: "Manual",
Output: "string",
Aliases: []string{"mechanism", "power", "engine", "wheels", "vehicle"},
Keywords: []string{"car", "transmission", "transmit", "manual", "automatic", "cvt", "semi-automatic", "gearbox", "clutch"},
Generate: func(f *Faker, m *MapParams, info *Info) (any, error) {
return carTransmissionType(f), nil
},
})
AddFuncLookup("carmaker", Info{
Display: "Car Maker",
Category: "car",
Description: "Company or brand that manufactures and designs cars",
Example: "Nissan",
Output: "string",
Aliases: []string{"company", "brand", "manufacturer", "designer", "vehicle", "producer"},
Keywords: []string{"car", "maker", "manufactures", "nissan", "toyota", "honda", "ford", "bmw", "mercedes", "audi"},
Generate: func(f *Faker, m *MapParams, info *Info) (any, error) {
return carMaker(f), nil
},
})
AddFuncLookup("carmodel", Info{
Display: "Car Model",
Category: "car",
Description: "Specific design or version of a car produced by a manufacturer",
Example: "Aveo",
Output: "string",
Aliases: []string{
"vehicle model",
"auto model",
"car type",
"car version",
"automobile model",
},
Keywords: []string{
"car", "model", "vehicle", "auto", "automobile",
"type", "edition", "variant", "series",
"sedan", "suv", "hatchback", "coupe", "convertible",
"civic", "camry", "accord", "corolla", "mustang", "prius",
},
Generate: func(f *Faker, m *MapParams, info *Info) (any, error) {
return carModel(f), nil
},
})
}