Dog breeds: added all 340 remaining FCI-recognized breeds (fetched from fci.be's nomenclature, 2026-08-23) not already in the existing 20-entry list, bringing the total to 360. 173 of the 340 additions get a German BreedTranslation using standard German cynology naming; the rest keep the same name in both locales (correct for many FCI breeds, which German-language sources don't translate either), falling back via pickLocalizedName as designed. Cat breeds: added all 39 remaining FIFe-recognized breeds (fetched from fifeweb.org/cats/breeds/, 2026-08-23), bringing the total to 54. 21 get a German translation. Existing entries were left untouched (upsert is keyed on speciesId+name) so no Pet.breedId reference breaks. Seed already run against the shared dev/prod DB (idempotent, additive only) — verified 360/54 breed counts and 193/36 DE-translated counts post-run.
1074 lines
31 KiB
TypeScript
1074 lines
31 KiB
TypeScript
import { PrismaClient } from "@prisma/client";
|
|
import { PrismaPg } from "@prisma/adapter-pg";
|
|
import { Pool } from "pg";
|
|
|
|
/**
|
|
* Seed script for the PawFeed database.
|
|
* Seeds Species (Dog, Cat, Bird) and Breed taxonomy idempotently.
|
|
* Uses upsert so it is safe to run multiple times.
|
|
*
|
|
* Run: npx tsx prisma/seed.ts
|
|
* Or: npx prisma db seed
|
|
*/
|
|
|
|
const databaseUrl = process.env.DATABASE_URL;
|
|
if (!databaseUrl) {
|
|
throw new Error(
|
|
"DATABASE_URL is not set. Please add it to .env.local first."
|
|
);
|
|
}
|
|
|
|
const adapter = new PrismaPg(new Pool({ connectionString: databaseUrl }));
|
|
const prisma = new PrismaClient({ adapter });
|
|
|
|
const DOG_BREEDS = [
|
|
"Labrador Retriever",
|
|
"Golden Retriever",
|
|
"German Shepherd",
|
|
"French Bulldog",
|
|
"Bulldog",
|
|
"Poodle",
|
|
"Beagle",
|
|
"Rottweiler",
|
|
"German Shorthaired Pointer",
|
|
"Dachshund",
|
|
"Pembroke Welsh Corgi",
|
|
"Australian Shepherd",
|
|
"Yorkshire Terrier",
|
|
"Boxer",
|
|
"Cavalier King Charles Spaniel",
|
|
"Doberman Pinscher",
|
|
"Great Dane",
|
|
"Miniature Schnauzer",
|
|
"Siberian Husky",
|
|
"Border Collie",
|
|
// Remaining FCI-recognized breeds (Fédération Cynologique Internationale
|
|
// nomenclature, fetched from fci.be 2026-08-23) not already listed above.
|
|
"English Pointer",
|
|
"English Setter",
|
|
"Kerry Blue Terrier",
|
|
"Cairn Terrier",
|
|
"English Cocker Spaniel",
|
|
"Gordon Setter",
|
|
"Airedale Terrier",
|
|
"Australian Terrier",
|
|
"Bedlington Terrier",
|
|
"Border Terrier",
|
|
"Bull Terrier",
|
|
"Fox Terrier (Smooth)",
|
|
"English Toy Terrier (Black & Tan)",
|
|
"Swedish Vallhund",
|
|
"Belgian Shepherd Dog",
|
|
"Old English Sheepdog",
|
|
"Griffon Nivernais",
|
|
"Briquet Griffon Vendeen",
|
|
"Ariegeois",
|
|
"Gascon Saintongeois",
|
|
"Great Gascony Blue",
|
|
"Poitevin",
|
|
"Billy",
|
|
"Artois Hound",
|
|
"Porcelaine",
|
|
"Small Blue Gascony",
|
|
"Blue Gascony Griffon",
|
|
"Grand Basset Griffon Vendeen",
|
|
"Norman Artesien Basset",
|
|
"Blue Gascony Basset",
|
|
"Basset Fauve de Bretagne",
|
|
"Portuguese Water Dog",
|
|
"Welsh Corgi (Cardigan)",
|
|
"Irish Soft Coated Wheaten Terrier",
|
|
"Yugoslavian Shepherd Dog - Sharplanina",
|
|
"Jämthund",
|
|
"Basenji",
|
|
"Beauce Sheepdog",
|
|
"Bernese Mountain Dog",
|
|
"Appenzell Cattle Dog",
|
|
"Entlebuch Cattle Dog",
|
|
"Karelian Bear Dog",
|
|
"Finnish Spitz",
|
|
"Newfoundland",
|
|
"Finnish Hound",
|
|
"Polish Hound",
|
|
"Komondor",
|
|
"Kuvasz",
|
|
"Puli",
|
|
"Pumi",
|
|
"Hungarian Short-Haired Pointer (Vizsla)",
|
|
"Great Swiss Mountain Dog",
|
|
"Swiss Hound",
|
|
"Small Swiss Hound",
|
|
"St. Bernard",
|
|
"Coarse-Haired Styrian Hound",
|
|
"Austrian Black and Tan Hound",
|
|
"Austrian Pinscher",
|
|
"Maltese",
|
|
"Fawn Brittany Griffon",
|
|
"Petit Basset Griffon Vendeen",
|
|
"Tyrolean Hound",
|
|
"Lakeland Terrier",
|
|
"Manchester Terrier",
|
|
"Norwich Terrier",
|
|
"Scottish Terrier",
|
|
"Sealyham Terrier",
|
|
"Skye Terrier",
|
|
"Staffordshire Bull Terrier",
|
|
"Continental Toy Spaniel",
|
|
"Welsh Terrier",
|
|
"Griffon Bruxellois",
|
|
"Griffon Belge",
|
|
"Petit Brabançon",
|
|
"Schipperke",
|
|
"Bloodhound",
|
|
"West Highland White Terrier",
|
|
"Catalan Sheepdog",
|
|
"Shetland Sheepdog",
|
|
"Ibizan Podenco",
|
|
"Burgos Pointing Dog",
|
|
"Spanish Mastiff",
|
|
"Pyrenean Mastiff",
|
|
"Portuguese Sheepdog",
|
|
"Portuguese Warren Hound-Portuguese Podengo",
|
|
"Brittany Spaniel",
|
|
"Rafeiro of Alentejo",
|
|
"German Spitz",
|
|
"German Wire-Haired Pointing Dog",
|
|
"Weimaraner",
|
|
"Westphalian Dachsbracke",
|
|
"Kleiner Münsterländer",
|
|
"German Hunting Terrier",
|
|
"German Spaniel",
|
|
"French Water Dog",
|
|
"Blue Picardy Spaniel",
|
|
"Wire-Haired Pointing Griffon Korthals",
|
|
"Picardy Spaniel",
|
|
"Clumber Spaniel",
|
|
"Curly Coated Retriever",
|
|
"Briard",
|
|
"Pont-Audemer Spaniel",
|
|
"Saint Germain Pointer",
|
|
"Dogue de Bordeaux",
|
|
"Deutsch Langhaar",
|
|
"Large Munsterlander",
|
|
"Irish Red Setter",
|
|
"Flat Coated Retriever",
|
|
"Field Spaniel",
|
|
"Irish Water Spaniel",
|
|
"English Springer Spaniel",
|
|
"Welsh Springer Spaniel",
|
|
"Sussex Spaniel",
|
|
"King Charles Spaniel",
|
|
"Smålandsstövare",
|
|
"Drever",
|
|
"Schillerstövare",
|
|
"Hamiltonstövare",
|
|
"French Pointing Dog - Gascogne Type",
|
|
"French Pointing Dog - Pyrenean Type",
|
|
"Swedish Lapphund",
|
|
"Pyrenean Mountain Dog",
|
|
"Pyrenean Sheepdog - Smooth Faced",
|
|
"Irish Terrier",
|
|
"Boston Terrier",
|
|
"Long-Haired Pyrenean Sheepdog",
|
|
"Slovakian Chuvach",
|
|
"Leonberger",
|
|
"Rhodesian Ridgeback",
|
|
"Serbian Hound",
|
|
"Istrian Short-Haired Hound",
|
|
"Istrian Wire-Haired Hound",
|
|
"Dalmatian",
|
|
"Posavatz Hound",
|
|
"Bosnian Broken-Haired Hound - Called Barak",
|
|
"Collie Rough",
|
|
"Bullmastiff",
|
|
"Greyhound",
|
|
"English Foxhound",
|
|
"Irish Wolfhound",
|
|
"Whippet",
|
|
"Basset Hound",
|
|
"Deerhound",
|
|
"Italian Spinone",
|
|
"American Cocker Spaniel",
|
|
"Dandie Dinmont Terrier",
|
|
"Fox Terrier (Wire)",
|
|
"Castro Laboreiro Dog",
|
|
"Bouvier Des Ardennes",
|
|
"Estrela Mountain Dog",
|
|
"French Spaniel",
|
|
"Picardy Sheepdog",
|
|
"Ariege Pointing Dog",
|
|
"Bourbonnais Pointing Dog",
|
|
"Auvergne Pointer",
|
|
"Giant Schnauzer",
|
|
"Schnauzer",
|
|
"German Pinscher",
|
|
"Miniature Pinscher",
|
|
"Affenpinscher",
|
|
"Portuguese Pointing Dog",
|
|
"Sloughi",
|
|
"Finnish Lapponian Dog",
|
|
"Hovawart",
|
|
"Bouvier Des Flandres",
|
|
"Kromfohrländer",
|
|
"Borzoi - Russian Hunting Sighthound",
|
|
"Bergamasco Shepherd Dog",
|
|
"Italian Volpino",
|
|
"Bolognese",
|
|
"Neapolitan Mastiff",
|
|
"Italian Rough-Haired Segugio",
|
|
"Cirneco Dell'Etna",
|
|
"Italian Sighthound",
|
|
"Maremma and the Abruzzes Sheepdog",
|
|
"Italian Pointing Dog",
|
|
"Norwegian Hound",
|
|
"Spanish Hound",
|
|
"Chow Chow",
|
|
"Japanese Chin",
|
|
"Pekingese",
|
|
"Shih Tzu",
|
|
"Tibetan Terrier",
|
|
"Canadian Eskimo Dog",
|
|
"Samoyed",
|
|
"Hanoverian Scent Hound",
|
|
"Hellenic Hound",
|
|
"Bichon Frise",
|
|
"Pudelpointer",
|
|
"Bavarian Mountain Scent Hound",
|
|
"Chihuahua",
|
|
"French Tricolour Hound",
|
|
"French White & Black Hound",
|
|
"Wetterhoun",
|
|
"Stabijhoun",
|
|
"Dutch Shepherd Dog",
|
|
"Drentsche Partridge Dog",
|
|
"Fila Brasileiro",
|
|
"Landseer (European Continental Type)",
|
|
"Lhasa Apso",
|
|
"Afghan Hound",
|
|
"Serbian Tricolour Hound",
|
|
"Tibetan Mastiff",
|
|
"Tibetan Spaniel",
|
|
"Deutsch Stichelhaar",
|
|
"Little Lion Dog",
|
|
"Xoloitzcuintle",
|
|
"Australian Silky Terrier",
|
|
"Norwegian Buhund",
|
|
"Mudi",
|
|
"Hungarian Wire-Haired Pointer",
|
|
"Hungarian Greyhound",
|
|
"Hungarian Hound - Transylvanian Scent Hound",
|
|
"Norwegian Elkhound Grey",
|
|
"Alaskan Malamute",
|
|
"Slovakian Hound",
|
|
"Bohemian Wire-Haired Pointing Griffon",
|
|
"Cesky Terrier",
|
|
"Atlas Mountain Dog (Aidi)",
|
|
"Pharaoh Hound",
|
|
"Majorca Mastiff",
|
|
"Havanese",
|
|
"Polish Lowland Sheepdog",
|
|
"Polish Tatra Shepherd",
|
|
"Pug",
|
|
"Alpine Dachsbracke",
|
|
"Akita",
|
|
"Shiba",
|
|
"Japanese Terrier",
|
|
"Tosa",
|
|
"Hokkaido",
|
|
"Japanese Spitz",
|
|
"Chesapeake Bay Retriever",
|
|
"Mastiff",
|
|
"Norwegian Lundehund",
|
|
"Hygen Hound",
|
|
"Halden Hound",
|
|
"Norwegian Elkhound Black",
|
|
"Saluki",
|
|
"Bearded Collie",
|
|
"Norfolk Terrier",
|
|
"Canaan Dog",
|
|
"Greenland Dog",
|
|
"Brazilian Tracker",
|
|
"Norrbottenspitz",
|
|
"Croatian Shepherd Dog",
|
|
"Karst Shepherd Dog",
|
|
"Montenegrin Mountain Hound",
|
|
"Old Danish Pointing Dog",
|
|
"Grand Griffon Vendeen",
|
|
"Coton de Tulear",
|
|
"Lapponian Herder",
|
|
"Spanish Greyhound",
|
|
"American Staffordshire Terrier",
|
|
"Australian Cattle Dog",
|
|
"Chinese Crested Dog",
|
|
"Icelandic Sheepdog",
|
|
"Beagle Harrier",
|
|
"Eurasian",
|
|
"Dogo Argentino",
|
|
"Australian Kelpie",
|
|
"Otterhound",
|
|
"Harrier",
|
|
"Collie Smooth",
|
|
"Romagna Water Dog",
|
|
"German Hound",
|
|
"Black and Tan Coonhound",
|
|
"American Water Spaniel",
|
|
"Irish Glen of Imaal Terrier",
|
|
"American Foxhound",
|
|
"Russian-European Laika",
|
|
"East Siberian Laika",
|
|
"West Siberian Laika",
|
|
"Azawakh",
|
|
"Dutch Smoushond",
|
|
"Shar Pei",
|
|
"Peruvian Hairless Dog",
|
|
"Saarloos Wolfhond",
|
|
"Nova Scotia Duck Tolling Retriever",
|
|
"Dutch Schapendoes",
|
|
"Nederlandse Kooikerhondje",
|
|
"Broholmer",
|
|
"French White and Orange Hound",
|
|
"Kai",
|
|
"Kishu",
|
|
"Shikoku",
|
|
"Wirehaired Slovakian Pointer",
|
|
"Majorca Shepherd Dog",
|
|
"Great Anglo-French Tricolour Hound",
|
|
"Great Anglo-French White and Black Hound",
|
|
"Great Anglo-French White & Orange Hound",
|
|
"Medium-Sized Anglo-French Hound",
|
|
"South Russian Shepherd Dog",
|
|
"Russian Black Terrier",
|
|
"Caucasian Shepherd Dog",
|
|
"Canarian Warren Hound",
|
|
"Irish Red and White Setter",
|
|
"Kangal Shepherd Dog",
|
|
"Czechoslovakian Wolfdog",
|
|
"Polish Greyhound",
|
|
"Korea Jindo Dog",
|
|
"Central Asia Shepherd Dog",
|
|
"Spanish Water Dog",
|
|
"Italian Short-Haired Segugio",
|
|
"Thai Ridgeback Dog",
|
|
"Parson Russell Terrier",
|
|
"Saint Miguel Cattle Dog",
|
|
"Brazilian Terrier",
|
|
"Italian Cane Corso",
|
|
"American Akita",
|
|
"Jack Russell Terrier",
|
|
"Presa Canario",
|
|
"White Swiss Shepherd Dog",
|
|
"Taiwan Dog",
|
|
"Romanian Mioritic Shepherd Dog",
|
|
"Romanian Carpathian Shepherd Dog",
|
|
"Australian Stumpy Tail Cattle Dog",
|
|
"Russian Toy",
|
|
"Cimarrón Uruguayo",
|
|
"Polish Hunting Dog",
|
|
"Bosnian and Herzegovinian - Croatian Shepherd Dog",
|
|
"Danish-Swedish Farmdog",
|
|
"Romanian Bucovina Shepherd",
|
|
"Thai Bangkaew Dog",
|
|
"Miniature Bull Terrier",
|
|
"Lancashire Heeler",
|
|
"Segugio Maremmano",
|
|
"Kintamani-Bali Dog",
|
|
"Prague Ratter",
|
|
"Bohemian Shepherd Dog",
|
|
"Yakutian Laika",
|
|
"Estonian Hound",
|
|
"Miniature American Shepherd",
|
|
"Transmontano Mastiff",
|
|
"Continental Bulldog",
|
|
"Valencian Terrier",
|
|
"Andalusian Terrier, Sherry Terrier",
|
|
"Kazakh Tazy",
|
|
"Romanian Raven Shepherd Dog",
|
|
"Brazilian Campeiro Bulldog",
|
|
];
|
|
|
|
const CAT_BREEDS = [
|
|
"Domestic Shorthair",
|
|
"Domestic Longhair",
|
|
"Maine Coon",
|
|
"Ragdoll",
|
|
"Siamese",
|
|
"Persian",
|
|
"Bengal",
|
|
"British Shorthair",
|
|
"Sphynx",
|
|
"Scottish Fold",
|
|
"American Shorthair",
|
|
"Abyssinian",
|
|
"Norwegian Forest Cat",
|
|
"Birman",
|
|
"Russian Blue",
|
|
// Remaining FIFe-recognized breeds (Fédération Internationale Féline,
|
|
// fetched from fifeweb.org/cats/breeds/ 2026-08-23) not already listed above.
|
|
"Exotic Shorthair",
|
|
"Turkish Van",
|
|
"American Curl Longhair",
|
|
"American Curl Shorthair",
|
|
"LaPerm Longhair",
|
|
"LaPerm Shorthair",
|
|
"Neva Masquerade",
|
|
"Siberian",
|
|
"Turkish Angora",
|
|
"British Longhair",
|
|
"Burmilla",
|
|
"Burmese",
|
|
"Chartreux",
|
|
"Cymric",
|
|
"European",
|
|
"Kurilean Bobtail Longhair",
|
|
"Kurilean Bobtail Shorthair",
|
|
"Korat",
|
|
"Manx",
|
|
"Egyptian Mau",
|
|
"Ocicat",
|
|
"Singapura",
|
|
"Snowshoe",
|
|
"Sokoke",
|
|
"Selkirk Rex Longhair",
|
|
"Selkirk Rex Shorthair",
|
|
"Balinese",
|
|
"Cornish Rex",
|
|
"Devon Rex",
|
|
"Don Sphynx",
|
|
"German Rex",
|
|
"Japanese Bobtail Shorthair",
|
|
"Oriental Longhair",
|
|
"Oriental Shorthair",
|
|
"Peterbald",
|
|
"Somali",
|
|
"Thai",
|
|
"Bombay",
|
|
"Lykoi",
|
|
];
|
|
|
|
const BIRD_BREEDS = [
|
|
"Budgerigar (Budgie)",
|
|
"Cockatiel",
|
|
"Lovebird",
|
|
"African Grey Parrot",
|
|
"Cockatoo",
|
|
"Conure",
|
|
"Macaw",
|
|
"Canary",
|
|
"Finch",
|
|
"Amazon Parrot",
|
|
];
|
|
|
|
const HORSE_BREEDS = [
|
|
"Arabian Horse",
|
|
"Icelandic Horse",
|
|
"Shetland Pony",
|
|
"Haflinger",
|
|
"Friesian",
|
|
"Andalusian",
|
|
"Quarter Horse",
|
|
"Thoroughbred",
|
|
"Warmblood",
|
|
"Welsh Pony",
|
|
"Trakehner",
|
|
"Hanoverian",
|
|
];
|
|
|
|
const RABBIT_BREEDS = [
|
|
"Netherland Dwarf",
|
|
"Holland Lop",
|
|
"Lionhead Rabbit",
|
|
"Rex Rabbit",
|
|
"Angora Rabbit",
|
|
"Flemish Giant",
|
|
"Mini Rex",
|
|
"Dutch Rabbit",
|
|
];
|
|
|
|
const GUINEA_PIG_BREEDS = [
|
|
"American Guinea Pig",
|
|
"Abyssinian Guinea Pig",
|
|
"Peruvian Guinea Pig",
|
|
"Silkie Guinea Pig",
|
|
"Teddy Guinea Pig",
|
|
"Skinny Pig",
|
|
];
|
|
|
|
const HAMSTER_BREEDS = [
|
|
"Syrian Hamster",
|
|
"Roborovski Hamster",
|
|
"Campbell's Dwarf Hamster",
|
|
"Winter White Hamster",
|
|
"Chinese Hamster",
|
|
];
|
|
|
|
const MOUSE_BREEDS = [
|
|
"Fancy Mouse",
|
|
"Satin Mouse",
|
|
"Long-Haired Mouse",
|
|
"Hairless Mouse",
|
|
];
|
|
|
|
const RAT_BREEDS = [
|
|
"Standard Rat",
|
|
"Dumbo Rat",
|
|
"Hairless Rat",
|
|
"Rex Rat",
|
|
"Satin Rat",
|
|
];
|
|
|
|
const SNAKE_BREEDS = [
|
|
"Corn Snake",
|
|
"Ball Python",
|
|
"Boa Constrictor",
|
|
"King Snake",
|
|
"Milk Snake",
|
|
"Garter Snake",
|
|
];
|
|
|
|
const LIZARD_BREEDS = [
|
|
"Bearded Dragon",
|
|
"Green Iguana",
|
|
"Blue-Tongued Skink",
|
|
"Chameleon",
|
|
"Monitor Lizard",
|
|
];
|
|
|
|
const TURTLE_BREEDS = [
|
|
"Red-Eared Slider",
|
|
"Greek Tortoise",
|
|
"Hermann's Tortoise",
|
|
"Box Turtle",
|
|
"African Sulcata Tortoise",
|
|
];
|
|
|
|
const GECKO_BREEDS = [
|
|
"Leopard Gecko",
|
|
"Crested Gecko",
|
|
"Tokay Gecko",
|
|
"Day Gecko",
|
|
"Gargoyle Gecko",
|
|
];
|
|
|
|
const SPIDER_BREEDS = [
|
|
"Chilean Rose Tarantula",
|
|
"Mexican Red Knee Tarantula",
|
|
"Curly Hair Tarantula",
|
|
"Pink Toe Tarantula",
|
|
"Goliath Birdeater",
|
|
"Brazilian Black Tarantula",
|
|
];
|
|
|
|
const CHINCHILLA_BREEDS = [
|
|
"Standard Grey",
|
|
"Beige",
|
|
"White",
|
|
"Black Velvet",
|
|
"Violet",
|
|
"Sapphire",
|
|
"Ebony",
|
|
];
|
|
|
|
// The Species is the aquarium/tank as a whole (matches how aquarists
|
|
// actually showcase their hobby), not one profile per individual fish —
|
|
// "breed" here means the predominant fish species kept, same pattern as
|
|
// Bird covering many bird types via Breed.
|
|
const AQUARIUM_BREEDS = [
|
|
"Betta (Siamese Fighting Fish)",
|
|
"Guppy",
|
|
"Neon Tetra",
|
|
"Goldfish",
|
|
"Angelfish",
|
|
"Discus",
|
|
"Koi",
|
|
"Molly",
|
|
"Platy",
|
|
"Cichlid",
|
|
"Corydoras Catfish",
|
|
"Zebra Danio",
|
|
];
|
|
|
|
const SPECIES_DE: Record<string, string> = {
|
|
"Dog": "Hund",
|
|
"Cat": "Katze",
|
|
"Bird": "Vogel",
|
|
"Horse": "Pferd",
|
|
"Rabbit": "Kaninchen",
|
|
"Guinea Pig": "Meerschweinchen",
|
|
"Hamster": "Hamster",
|
|
"Mouse": "Maus",
|
|
"Rat": "Ratte",
|
|
"Snake": "Schlange",
|
|
"Lizard": "Echse",
|
|
"Turtle": "Schildkröte",
|
|
"Gecko": "Gecko",
|
|
"Spider": "Spinne",
|
|
"Chinchilla": "Chinchilla",
|
|
"Aquarium": "Aquarium",
|
|
};
|
|
|
|
const DOG_BREEDS_DE: Record<string, string> = {
|
|
"Labrador Retriever": "Labrador Retriever",
|
|
"Golden Retriever": "Golden Retriever",
|
|
"German Shepherd": "Deutscher Schäferhund",
|
|
"French Bulldog": "Französische Bulldogge",
|
|
"Bulldog": "Bulldogge",
|
|
"Poodle": "Pudel",
|
|
"Beagle": "Beagle",
|
|
"Rottweiler": "Rottweiler",
|
|
"German Shorthaired Pointer": "Deutsch Kurzhaar",
|
|
"Dachshund": "Dackel",
|
|
"Pembroke Welsh Corgi": "Pembroke Welsh Corgi",
|
|
"Australian Shepherd": "Australian Shepherd",
|
|
"Yorkshire Terrier": "Yorkshire Terrier",
|
|
"Boxer": "Boxer",
|
|
"Cavalier King Charles Spaniel": "Cavalier King Charles Spaniel",
|
|
"Doberman Pinscher": "Dobermann",
|
|
"Great Dane": "Deutsche Dogge",
|
|
"Miniature Schnauzer": "Zwergschnauzer",
|
|
"Siberian Husky": "Sibirischer Husky",
|
|
"Border Collie": "Border Collie",
|
|
"English Cocker Spaniel": "Englischer Cocker Spaniel",
|
|
"Fox Terrier (Smooth)": "Foxterrier (Glatthaar)",
|
|
"English Toy Terrier (Black & Tan)": "Englischer Toy Terrier (Black & Tan)",
|
|
"Swedish Vallhund": "Schwedischer Wallhund",
|
|
"Belgian Shepherd Dog": "Belgischer Schäferhund",
|
|
"Old English Sheepdog": "Bobtail",
|
|
"Portuguese Water Dog": "Portugiesischer Wasserhund",
|
|
"Welsh Corgi (Cardigan)": "Welsh Corgi Cardigan",
|
|
"Beauce Sheepdog": "Beauceron",
|
|
"Bernese Mountain Dog": "Berner Sennenhund",
|
|
"Appenzell Cattle Dog": "Appenzeller Sennenhund",
|
|
"Entlebuch Cattle Dog": "Entlebucher Sennenhund",
|
|
"Karelian Bear Dog": "Karelischer Bärenhund",
|
|
"Finnish Spitz": "Finnenspitz",
|
|
"Newfoundland": "Neufundländer",
|
|
"Finnish Hound": "Finnischer Laufhund",
|
|
"Polish Hound": "Polnischer Laufhund",
|
|
"Hungarian Short-Haired Pointer (Vizsla)": "Ungarischer Kurzhaariger Vorstehhund (Vizsla)",
|
|
"Great Swiss Mountain Dog": "Großer Schweizer Sennenhund",
|
|
"Swiss Hound": "Schweizer Laufhund",
|
|
"Small Swiss Hound": "Kleiner Schweizer Laufhund",
|
|
"St. Bernard": "Bernhardiner",
|
|
"Coarse-Haired Styrian Hound": "Steirische Rauhaarbracke",
|
|
"Austrian Black and Tan Hound": "Brandlbracke",
|
|
"Austrian Pinscher": "Österreichischer Pinscher",
|
|
"Maltese": "Malteser",
|
|
"Tyrolean Hound": "Tiroler Bracke",
|
|
"Continental Toy Spaniel": "Kontinentaler Zwergspaniel (Papillon/Phalène)",
|
|
"Griffon Bruxellois": "Brüsseler Griffon",
|
|
"Griffon Belge": "Belgischer Griffon",
|
|
"Petit Brabançon": "Kleiner Brabanter",
|
|
"Catalan Sheepdog": "Katalanischer Schäferhund",
|
|
"Ibizan Podenco": "Ibiza-Podenco",
|
|
"Burgos Pointing Dog": "Burgos-Vorstehhund",
|
|
"Spanish Mastiff": "Spanischer Mastiff",
|
|
"Pyrenean Mastiff": "Pyrenäen-Mastiff",
|
|
"Portuguese Sheepdog": "Portugiesischer Schäferhund",
|
|
"Portuguese Warren Hound-Portuguese Podengo": "Portugiesischer Podengo",
|
|
"Brittany Spaniel": "Bretonischer Spaniel",
|
|
"German Spitz": "Deutscher Spitz",
|
|
"German Wire-Haired Pointing Dog": "Deutsch Drahthaar",
|
|
"Westphalian Dachsbracke": "Westfälische Dachsbracke",
|
|
"German Hunting Terrier": "Deutscher Jagdterrier",
|
|
"German Spaniel": "Deutscher Wachtelhund",
|
|
"French Water Dog": "Barbet",
|
|
"Blue Picardy Spaniel": "Blauer Picardie-Spaniel",
|
|
"Picardy Spaniel": "Picardie-Spaniel",
|
|
"Pont-Audemer Spaniel": "Pont-Audemer-Spaniel",
|
|
"Large Munsterlander": "Großer Münsterländer",
|
|
"Irish Red Setter": "Irish Setter",
|
|
"Pyrenean Mountain Dog": "Pyrenäenberghund",
|
|
"Pyrenean Sheepdog - Smooth Faced": "Pyrenäen-Schäferhund, kurzhaarig",
|
|
"Long-Haired Pyrenean Sheepdog": "Pyrenäen-Schäferhund, langhaarig",
|
|
"Slovakian Chuvach": "Slowakischer Tschuvatsch",
|
|
"Istrian Short-Haired Hound": "Istrianer Kurzhaariger Laufhund",
|
|
"Istrian Wire-Haired Hound": "Istrianer Rauhaariger Laufhund",
|
|
"Dalmatian": "Dalmatiner",
|
|
"Bosnian Broken-Haired Hound - Called Barak": "Bosnischer Rauhaariger Laufhund (Barak)",
|
|
"Collie Rough": "Collie Langhaar",
|
|
"Fox Terrier (Wire)": "Foxterrier (Drahthaar)",
|
|
"Castro Laboreiro Dog": "Castro-Laboreiro-Hund",
|
|
"Bouvier Des Ardennes": "Ardennen-Bouvier",
|
|
"Estrela Mountain Dog": "Estrela-Berghund",
|
|
"French Spaniel": "Französischer Spaniel",
|
|
"Picardy Sheepdog": "Picardie-Schäferhund",
|
|
"Giant Schnauzer": "Riesenschnauzer",
|
|
"German Pinscher": "Deutscher Pinscher",
|
|
"Miniature Pinscher": "Zwergpinscher",
|
|
"Borzoi - Russian Hunting Sighthound": "Barsoi",
|
|
"Bergamasco Shepherd Dog": "Bergamasker Hirtenhund",
|
|
"Bolognese": "Bologneser",
|
|
"Neapolitan Mastiff": "Neapolitanischer Mastiff",
|
|
"Italian Sighthound": "Italienisches Windspiel",
|
|
"Maremma and the Abruzzes Sheepdog": "Maremmen-Abruzzen-Schäferhund",
|
|
"Norwegian Hound": "Norwegischer Laufhund",
|
|
"Spanish Hound": "Spanischer Laufhund",
|
|
"Pekingese": "Pekinese",
|
|
"Canadian Eskimo Dog": "Kanadischer Eskimohund",
|
|
"Samoyed": "Samojede",
|
|
"Hanoverian Scent Hound": "Hannoverscher Schweißhund",
|
|
"Hellenic Hound": "Griechischer Laufhund",
|
|
"Bavarian Mountain Scent Hound": "Bayerischer Gebirgsschweißhund",
|
|
"French Tricolour Hound": "Französischer Dreifarbiger Laufhund",
|
|
"French White & Black Hound": "Französischer Weiß-Schwarzer Laufhund",
|
|
"Dutch Shepherd Dog": "Holländischer Schäferhund",
|
|
"Fila Brasileiro": "Brasilianischer Fila",
|
|
"Landseer (European Continental Type)": "Landseer (Kontinentaler Typ)",
|
|
"Afghan Hound": "Afghanischer Windhund",
|
|
"Serbian Tricolour Hound": "Serbischer Dreifarbiger Laufhund",
|
|
"Tibetan Mastiff": "Tibet-Dogge",
|
|
"Tibetan Spaniel": "Tibet-Spaniel",
|
|
"Little Lion Dog": "Löwchen",
|
|
"Hungarian Wire-Haired Pointer": "Ungarischer Drahthaariger Vorstehhund",
|
|
"Hungarian Greyhound": "Ungarischer Windhund",
|
|
"Hungarian Hound - Transylvanian Scent Hound": "Siebenbürgische Bracke",
|
|
"Norwegian Elkhound Grey": "Grauer Norwegischer Elchhund",
|
|
"Slovakian Hound": "Slowakische Bracke",
|
|
"Cesky Terrier": "Tschechischer Terrier",
|
|
"Atlas Mountain Dog (Aidi)": "Atlas-Schäferhund (Aidi)",
|
|
"Pharaoh Hound": "Pharaonenhund",
|
|
"Majorca Mastiff": "Mallorquinischer Dogo",
|
|
"Havanese": "Havaneser",
|
|
"Polish Lowland Sheepdog": "Polnischer Niederungshütehund",
|
|
"Polish Tatra Shepherd": "Polnischer Tatra-Schäferhund",
|
|
"Pug": "Mops",
|
|
"Alpine Dachsbracke": "Alpenländische Dachsbracke",
|
|
"Japanese Terrier": "Japan Terrier",
|
|
"Tosa": "Tosa Inu",
|
|
"Mastiff": "Englische Dogge",
|
|
"Hygen Hound": "Hygenhund",
|
|
"Norwegian Elkhound Black": "Schwarzer Norwegischer Elchhund",
|
|
"Canaan Dog": "Kanaan-Hund",
|
|
"Greenland Dog": "Grönlandhund",
|
|
"Brazilian Tracker": "Brasilianischer Laufhund",
|
|
"Croatian Shepherd Dog": "Kroatischer Schäferhund",
|
|
"Karst Shepherd Dog": "Karst-Schäferhund",
|
|
"Montenegrin Mountain Hound": "Montenegrinischer Gebirgslaufhund",
|
|
"Old Danish Pointing Dog": "Alter Dänischer Vorstehhund",
|
|
"Spanish Greyhound": "Galgo Español",
|
|
"Chinese Crested Dog": "Chinesischer Schopfhund",
|
|
"Icelandic Sheepdog": "Isländischer Schäferhund",
|
|
"Eurasian": "Eurasier",
|
|
"Dogo Argentino": "Argentinische Dogge",
|
|
"Collie Smooth": "Collie Kurzhaar",
|
|
"Romagna Water Dog": "Lagotto Romagnolo",
|
|
"German Hound": "Deutsche Bracke",
|
|
"Irish Glen of Imaal Terrier": "Glen of Imaal Terrier",
|
|
"Russian-European Laika": "Russisch-Europäische Laika",
|
|
"East Siberian Laika": "Ostsibirische Laika",
|
|
"West Siberian Laika": "Westsibirische Laika",
|
|
"Dutch Smoushond": "Holländischer Smoushond",
|
|
"Peruvian Hairless Dog": "Peruanischer Nackthund",
|
|
"Saarloos Wolfhond": "Saarloos-Wolfhund",
|
|
"Dutch Schapendoes": "Schapendoes",
|
|
"Nederlandse Kooikerhondje": "Kooikerhondje",
|
|
"French White and Orange Hound": "Französischer Weiß-Oranger Laufhund",
|
|
"Kai": "Kai Ken",
|
|
"Kishu": "Kishu Ken",
|
|
"Shikoku": "Shikoku Ken",
|
|
"Wirehaired Slovakian Pointer": "Slowakischer Rauhbart",
|
|
"Majorca Shepherd Dog": "Mallorquinischer Schäferhund",
|
|
"Great Anglo-French Tricolour Hound": "Anglo-Französischer Laufhund, groß, dreifarbig",
|
|
"Great Anglo-French White and Black Hound": "Anglo-Französischer Laufhund, groß, weiß-schwarz",
|
|
"Great Anglo-French White & Orange Hound": "Anglo-Französischer Laufhund, groß, weiß-orange",
|
|
"Medium-Sized Anglo-French Hound": "Anglo-Französischer Laufhund, mittelgroß",
|
|
"South Russian Shepherd Dog": "Südrussischer Owtscharka",
|
|
"Russian Black Terrier": "Schwarzer Russischer Terrier",
|
|
"Caucasian Shepherd Dog": "Kaukasischer Owtscharka",
|
|
"Kangal Shepherd Dog": "Kangal",
|
|
"Czechoslovakian Wolfdog": "Tschechoslowakischer Wolfhund",
|
|
"Korea Jindo Dog": "Koreanischer Jindo-Hund",
|
|
"Central Asia Shepherd Dog": "Zentralasiatischer Owtscharka",
|
|
"Spanish Water Dog": "Spanischer Wasserhund",
|
|
"Thai Ridgeback Dog": "Thai Ridgeback",
|
|
"Italian Cane Corso": "Cane Corso",
|
|
"Presa Canario": "Perro de Presa Canario",
|
|
"White Swiss Shepherd Dog": "Weißer Schweizer Schäferhund",
|
|
"Taiwan Dog": "Taiwan-Hund",
|
|
"Romanian Mioritic Shepherd Dog": "Mioritischer Schäferhund",
|
|
"Romanian Carpathian Shepherd Dog": "Karpaten-Schäferhund",
|
|
"Polish Hunting Dog": "Polnischer Jagdhund",
|
|
"Bosnian and Herzegovinian - Croatian Shepherd Dog": "Bosnisch-Herzegowinisch-Kroatischer Schäferhund",
|
|
"Danish-Swedish Farmdog": "Dänisch-Schwedischer Farmhund",
|
|
"Romanian Bucovina Shepherd": "Bukowina-Schäferhund",
|
|
"Thai Bangkaew Dog": "Thai Bangkaew",
|
|
"Miniature Bull Terrier": "Bull Terrier Mini",
|
|
"Kintamani-Bali Dog": "Kintamani-Bali-Hund",
|
|
"Prague Ratter": "Prager Rattler",
|
|
"Bohemian Shepherd Dog": "Böhmischer Schäferhund",
|
|
"Yakutian Laika": "Jakutische Laika",
|
|
"Estonian Hound": "Estnische Bracke",
|
|
"Andalusian Terrier, Sherry Terrier": "Andalusischer Terrier",
|
|
"Kazakh Tazy": "Kasachischer Tasy",
|
|
};
|
|
|
|
const CAT_BREEDS_DE: Record<string, string> = {
|
|
"Domestic Shorthair": "Europäisch Kurzhaar",
|
|
"Domestic Longhair": "Europäisch Langhaar",
|
|
"Maine Coon": "Maine Coon",
|
|
"Ragdoll": "Ragdoll",
|
|
"Siamese": "Siamkatze",
|
|
"Persian": "Perserkatze",
|
|
"Bengal": "Bengalkatze",
|
|
"British Shorthair": "Britisch Kurzhaar",
|
|
"Sphynx": "Sphynx",
|
|
"Scottish Fold": "Scottish Fold",
|
|
"American Shorthair": "Amerikanisch Kurzhaar",
|
|
"Abyssinian": "Abessinier",
|
|
"Norwegian Forest Cat": "Norwegische Waldkatze",
|
|
"Birman": "Heilige Birma",
|
|
"Russian Blue": "Russisch Blau",
|
|
"Turkish Van": "Türkisch Van",
|
|
"American Curl Longhair": "Amerikanisch Curl Langhaar",
|
|
"American Curl Shorthair": "Amerikanisch Curl Kurzhaar",
|
|
"LaPerm Longhair": "LaPerm Langhaar",
|
|
"LaPerm Shorthair": "LaPerm Kurzhaar",
|
|
"Siberian": "Sibirische Katze",
|
|
"Turkish Angora": "Türkisch Angora",
|
|
"British Longhair": "Britisch Langhaar",
|
|
"Burmese": "Burma-Katze",
|
|
"Chartreux": "Kartäuser",
|
|
"European": "Europäisch Kurzhaar",
|
|
"Kurilean Bobtail Longhair": "Kurilen-Bobtail Langhaar",
|
|
"Kurilean Bobtail Shorthair": "Kurilen-Bobtail Kurzhaar",
|
|
"Egyptian Mau": "Ägyptische Mau",
|
|
"Selkirk Rex Longhair": "Selkirk Rex Langhaar",
|
|
"Selkirk Rex Shorthair": "Selkirk Rex Kurzhaar",
|
|
"German Rex": "Deutsch Rex",
|
|
"Japanese Bobtail Shorthair": "Japanese Bobtail Kurzhaar",
|
|
"Oriental Longhair": "Orientalisch Langhaar",
|
|
"Oriental Shorthair": "Orientalisch Kurzhaar",
|
|
"Thai": "Thai-Katze",
|
|
};
|
|
|
|
const BIRD_BREEDS_DE: Record<string, string> = {
|
|
"Budgerigar (Budgie)": "Wellensittich",
|
|
"Cockatiel": "Nymphensittich",
|
|
"Lovebird": "Unzertrennliche",
|
|
"African Grey Parrot": "Graupapagei",
|
|
"Cockatoo": "Kakadu",
|
|
"Conure": "Sittich",
|
|
"Macaw": "Ara",
|
|
"Canary": "Kanarienvogel",
|
|
"Finch": "Fink",
|
|
"Amazon Parrot": "Amazone",
|
|
};
|
|
|
|
const HORSE_BREEDS_DE: Record<string, string> = {
|
|
"Arabian Horse": "Araber",
|
|
"Icelandic Horse": "Islandpferd",
|
|
"Shetland Pony": "Shetlandpony",
|
|
"Haflinger": "Haflinger",
|
|
"Friesian": "Friese",
|
|
"Andalusian": "Andalusier",
|
|
"Quarter Horse": "Quarter Horse",
|
|
"Thoroughbred": "Englisches Vollblut",
|
|
"Warmblood": "Warmblut",
|
|
"Welsh Pony": "Welsh Pony",
|
|
"Trakehner": "Trakehner",
|
|
"Hanoverian": "Hannoveraner",
|
|
};
|
|
|
|
const RABBIT_BREEDS_DE: Record<string, string> = {
|
|
"Netherland Dwarf": "Hollandzwerg",
|
|
"Holland Lop": "Widderkaninchen",
|
|
"Lionhead Rabbit": "Löwenkopfkaninchen",
|
|
"Rex Rabbit": "Rex-Kaninchen",
|
|
"Angora Rabbit": "Angorakaninchen",
|
|
"Flemish Giant": "Deutscher Riese",
|
|
"Mini Rex": "Mini Rex",
|
|
"Dutch Rabbit": "Holländer",
|
|
};
|
|
|
|
const GUINEA_PIG_BREEDS_DE: Record<string, string> = {
|
|
"American Guinea Pig": "Glatthaarmeerschweinchen",
|
|
"Abyssinian Guinea Pig": "Rosettenmeerschweinchen",
|
|
"Peruvian Guinea Pig": "Perumeerschweinchen",
|
|
"Silkie Guinea Pig": "Silkie",
|
|
"Teddy Guinea Pig": "Teddymeerschweinchen",
|
|
"Skinny Pig": "Skinny Pig",
|
|
};
|
|
|
|
const HAMSTER_BREEDS_DE: Record<string, string> = {
|
|
"Syrian Hamster": "Goldhamster",
|
|
"Roborovski Hamster": "Roborowski-Zwerghamster",
|
|
"Campbell's Dwarf Hamster": "Campbell-Zwerghamster",
|
|
"Winter White Hamster": "Dsungarischer Zwerghamster",
|
|
"Chinese Hamster": "Chinesischer Streifenhamster",
|
|
};
|
|
|
|
const MOUSE_BREEDS_DE: Record<string, string> = {
|
|
"Fancy Mouse": "Farbmaus",
|
|
"Satin Mouse": "Satinmaus",
|
|
"Long-Haired Mouse": "Langhaarmaus",
|
|
"Hairless Mouse": "Nacktmaus",
|
|
};
|
|
|
|
const RAT_BREEDS_DE: Record<string, string> = {
|
|
"Standard Rat": "Standardratte",
|
|
"Dumbo Rat": "Dumbo-Ratte",
|
|
"Hairless Rat": "Nacktratte",
|
|
"Rex Rat": "Rex-Ratte",
|
|
"Satin Rat": "Satin-Ratte",
|
|
};
|
|
|
|
const SNAKE_BREEDS_DE: Record<string, string> = {
|
|
"Corn Snake": "Kornnatter",
|
|
"Ball Python": "Königspython",
|
|
"Boa Constrictor": "Abgottschlange",
|
|
"King Snake": "Königsnatter",
|
|
"Milk Snake": "Milchschlange",
|
|
"Garter Snake": "Strumpfbandnatter",
|
|
};
|
|
|
|
const LIZARD_BREEDS_DE: Record<string, string> = {
|
|
"Bearded Dragon": "Bartagame",
|
|
"Green Iguana": "Grüner Leguan",
|
|
"Blue-Tongued Skink": "Blauzungenskink",
|
|
"Chameleon": "Chamäleon",
|
|
"Monitor Lizard": "Waran",
|
|
};
|
|
|
|
const TURTLE_BREEDS_DE: Record<string, string> = {
|
|
"Red-Eared Slider": "Rotwangen-Schmuckschildkröte",
|
|
"Greek Tortoise": "Griechische Landschildkröte",
|
|
"Hermann's Tortoise": "Griechische Landschildkröte (Testudo hermanni)",
|
|
"Box Turtle": "Dosenschildkröte",
|
|
"African Sulcata Tortoise": "Spornschildkröte",
|
|
};
|
|
|
|
const GECKO_BREEDS_DE: Record<string, string> = {
|
|
"Leopard Gecko": "Leopardgecko",
|
|
"Crested Gecko": "Kronengecko",
|
|
"Tokay Gecko": "Tokeh",
|
|
"Day Gecko": "Taggecko",
|
|
"Gargoyle Gecko": "Gargoyle-Gecko",
|
|
};
|
|
|
|
const SPIDER_BREEDS_DE: Record<string, string> = {
|
|
"Chilean Rose Tarantula": "Chilenische Rosenhaarvogelspinne",
|
|
"Mexican Red Knee Tarantula": "Mexikanische Rotknievogelspinne",
|
|
"Curly Hair Tarantula": "Lockenhaarvogelspinne",
|
|
"Pink Toe Tarantula": "Antillen-Baumvogelspinne",
|
|
"Goliath Birdeater": "Goliath-Vogelspinne",
|
|
"Brazilian Black Tarantula": "Brasilianische Schwarze Vogelspinne",
|
|
};
|
|
|
|
const CHINCHILLA_BREEDS_DE: Record<string, string> = {
|
|
"Standard Grey": "Standardgrau",
|
|
"Beige": "Beige",
|
|
"White": "Weiß",
|
|
"Black Velvet": "Black Velvet",
|
|
"Violet": "Violett",
|
|
"Sapphire": "Saphir",
|
|
"Ebony": "Ebony",
|
|
};
|
|
|
|
const AQUARIUM_BREEDS_DE: Record<string, string> = {
|
|
"Betta (Siamese Fighting Fish)": "Kampffisch",
|
|
"Guppy": "Guppy",
|
|
"Neon Tetra": "Neonsalmler",
|
|
"Goldfish": "Goldfisch",
|
|
"Angelfish": "Skalar",
|
|
"Discus": "Diskusfisch",
|
|
"Koi": "Koi",
|
|
"Molly": "Molly",
|
|
"Platy": "Platy",
|
|
"Cichlid": "Buntbarsch",
|
|
"Corydoras Catfish": "Panzerwels",
|
|
"Zebra Danio": "Zebrabärbling",
|
|
};
|
|
|
|
const BREED_DE_BY_SPECIES: Record<string, Record<string, string>> = {
|
|
"Dog": DOG_BREEDS_DE,
|
|
"Cat": CAT_BREEDS_DE,
|
|
"Bird": BIRD_BREEDS_DE,
|
|
"Horse": HORSE_BREEDS_DE,
|
|
"Rabbit": RABBIT_BREEDS_DE,
|
|
"Guinea Pig": GUINEA_PIG_BREEDS_DE,
|
|
"Hamster": HAMSTER_BREEDS_DE,
|
|
"Mouse": MOUSE_BREEDS_DE,
|
|
"Rat": RAT_BREEDS_DE,
|
|
"Snake": SNAKE_BREEDS_DE,
|
|
"Lizard": LIZARD_BREEDS_DE,
|
|
"Turtle": TURTLE_BREEDS_DE,
|
|
"Gecko": GECKO_BREEDS_DE,
|
|
"Spider": SPIDER_BREEDS_DE,
|
|
"Chinchilla": CHINCHILLA_BREEDS_DE,
|
|
"Aquarium": AQUARIUM_BREEDS_DE,
|
|
};
|
|
|
|
async function main() {
|
|
console.log("Seeding species...");
|
|
|
|
const speciesData = [
|
|
{ name: "Dog", breeds: DOG_BREEDS },
|
|
{ name: "Cat", breeds: CAT_BREEDS },
|
|
{ name: "Bird", breeds: BIRD_BREEDS },
|
|
{ name: "Horse", breeds: HORSE_BREEDS },
|
|
{ name: "Rabbit", breeds: RABBIT_BREEDS },
|
|
{ name: "Guinea Pig", breeds: GUINEA_PIG_BREEDS },
|
|
{ name: "Hamster", breeds: HAMSTER_BREEDS },
|
|
{ name: "Mouse", breeds: MOUSE_BREEDS },
|
|
{ name: "Rat", breeds: RAT_BREEDS },
|
|
{ name: "Snake", breeds: SNAKE_BREEDS },
|
|
{ name: "Lizard", breeds: LIZARD_BREEDS },
|
|
{ name: "Turtle", breeds: TURTLE_BREEDS },
|
|
{ name: "Gecko", breeds: GECKO_BREEDS },
|
|
{ name: "Spider", breeds: SPIDER_BREEDS },
|
|
{ name: "Chinchilla", breeds: CHINCHILLA_BREEDS },
|
|
{ name: "Aquarium", breeds: AQUARIUM_BREEDS },
|
|
];
|
|
|
|
for (const s of speciesData) {
|
|
const species = await prisma.species.upsert({
|
|
where: { name: s.name },
|
|
update: {},
|
|
create: { name: s.name },
|
|
});
|
|
console.log(` Upserted species: ${species.name} (${species.id})`);
|
|
|
|
const deSpeciesName = SPECIES_DE[s.name];
|
|
if (deSpeciesName) {
|
|
await prisma.speciesTranslation.upsert({
|
|
where: { speciesId_locale: { speciesId: species.id, locale: "de" } },
|
|
update: { name: deSpeciesName },
|
|
create: { speciesId: species.id, locale: "de", name: deSpeciesName },
|
|
});
|
|
}
|
|
|
|
console.log(` Seeding ${s.breeds.length} breeds for ${species.name}...`);
|
|
const breedDeMap = BREED_DE_BY_SPECIES[s.name] ?? {};
|
|
|
|
for (const breedName of s.breeds) {
|
|
const breed = await prisma.breed.upsert({
|
|
where: { speciesId_name: { speciesId: species.id, name: breedName } },
|
|
update: {},
|
|
create: { speciesId: species.id, name: breedName },
|
|
});
|
|
|
|
const deBreedName = breedDeMap[breedName];
|
|
if (deBreedName) {
|
|
await prisma.breedTranslation.upsert({
|
|
where: { breedId_locale: { breedId: breed.id, locale: "de" } },
|
|
update: { name: deBreedName },
|
|
create: { breedId: breed.id, locale: "de", name: deBreedName },
|
|
});
|
|
}
|
|
|
|
console.log(` Upserted breed: ${breed.name}`);
|
|
}
|
|
}
|
|
|
|
console.log("Seeding complete.");
|
|
}
|
|
|
|
main()
|
|
.catch((e) => {
|
|
console.error(e);
|
|
process.exit(1);
|
|
})
|
|
.finally(async () => {
|
|
await prisma.$disconnect();
|
|
});
|