diff --git a/app/Support/Number.php b/app/Support/Number.php index 28fcd07..d5e42d2 100644 --- a/app/Support/Number.php +++ b/app/Support/Number.php @@ -40,8 +40,8 @@ class Number */ public static function fractionStringFromFloat(float $value): string { $fraction = (string) Fraction::fromFloat($value); - $fraction = str_replace('33333333/100000000', '1/3', $fraction); - $fraction = str_replace('66666667/100000000', '2/3', $fraction); + $fraction = str_replace(['33/100', '33333333/100000000'], '1/3', $fraction); + $fraction = str_replace(['67/100', '66666667/100000000'], '2/3', $fraction); return $fraction; } } diff --git a/app/Support/Nutrients.php b/app/Support/Nutrients.php index 6237e71..29717e7 100644 --- a/app/Support/Nutrients.php +++ b/app/Support/Nutrients.php @@ -63,6 +63,7 @@ class Nutrients * - label: Human-readable name for the entry. * - unit: Unit of measure for the entry. * - weight: Sort weight for presentation. + * - rdi: US FDA's recommended daily intake for adults (https://www.fda.gov/media/99059/download). */ public static function all(): Collection { return new Collection([ @@ -71,36 +72,42 @@ class Nutrients 'label' => 'calories', 'unit' => null, 'weight' => 0, + 'rdi' => 2000, ], 'carbohydrates' => [ 'value' => 'carbohydrates', 'label' => 'carbohydrates', 'unit' => 'g', 'weight' => 40, + 'rdi' => 275, ], 'cholesterol' => [ 'value' => 'cholesterol', 'label' => 'cholesterol', 'unit' => 'mg', 'weight' => 20, + 'rdi' => 300, ], 'fat' => [ 'value' => 'fat', 'label' => 'fat', 'unit' => 'g', 'weight' => 10, + 'rdi' => 78, ], 'protein' => [ 'value' => 'protein', 'label' => 'protein', 'unit' => 'g', 'weight' => 50, + 'rdi' => 50, ], 'sodium' => [ 'value' => 'sodium', 'label' => 'sodium', 'unit' => 'mg', 'weight' => 30, + 'rdi' => 2300, ], ]); } diff --git a/config/filesystems.php b/config/filesystems.php index 1754610..3712483 100644 --- a/config/filesystems.php +++ b/config/filesystems.php @@ -58,9 +58,9 @@ return [ 'endpoint' => env('AWS_ENDPOINT'), ], - 'wordlists' => [ + 'seeder' => [ 'driver' => 'local', - 'root' => storage_path('wordlists'), + 'root' => storage_path('seeder'), ], ], diff --git a/database/Factories/FoodFactory.php b/database/Factories/FoodFactory.php index 561f6ff..a549802 100644 --- a/database/Factories/FoodFactory.php +++ b/database/Factories/FoodFactory.php @@ -6,7 +6,6 @@ use App\Models\Food; use Database\Support\Words; use Illuminate\Database\Eloquent\Factories\Factory; -use Illuminate\Support\Arr; class FoodFactory extends Factory { @@ -22,22 +21,21 @@ class FoodFactory extends Factory public function definition(): array { return [ - 'name' => Words::randomWords(Arr::random(['n', 'an']), TRUE), - 'detail' => $this->faker->optional()->sentence(2), + 'name' => Words::randomWords($this->faker->randomElement(['n', 'an'])), + 'detail' => $this->faker->boolean() ? Words::randomWords('a') : null, 'brand' => $this->faker->optional()->word, 'source' => $this->faker->optional()->url, - 'notes' => $this->faker->optional(0.25)->paragraph, + 'notes' => $this->faker->optional(0.25)->realText(), 'serving_size' => $this->faker->numberBetween(1, 3), 'serving_unit' => $this->faker->randomElement(['tsp', 'tbsp', 'cup']), 'serving_weight' => $this->faker->numberBetween(5, 500), - 'serving_unit_name' => $this->faker->optional(0.25)->word, 'calories' => $this->faker->randomFloat(1, 0, 100), 'fat' => $this->faker->randomFloat(1, 0, 10), 'cholesterol' => $this->faker->randomFloat(1, 0, 100), 'sodium' => $this->faker->randomFloat(1, 0, 500), 'carbohydrates' => $this->faker->randomFloat(1, 0, 20), 'protein' => $this->faker->randomFloat(1, 0, 20), - 'tags' => Words::randomWords(Arr::random(['a', 'aa', 'aaa'])), + 'tags' => Words::randomWords($this->faker->randomElement(['a', 'aa', 'aaa']), TRUE), ]; } diff --git a/database/Factories/IngredientAmountFactory.php b/database/Factories/IngredientAmountFactory.php index cf646b0..dd4e22c 100644 --- a/database/Factories/IngredientAmountFactory.php +++ b/database/Factories/IngredientAmountFactory.php @@ -36,9 +36,9 @@ class IngredientAmountFactory extends Factory return [ 'ingredient_id' => $ingredient_factory, 'ingredient_type' => $ingredient_type, - 'amount' => $this->faker->randomFloat(1, 1/3, 5), + 'amount' => $this->faker->randomElement([1/8, 1/4, 1/3, 1/2, 3/4, 1, 1.25, 1.5, 1.75, 2, 2.5, 3]), 'unit' => $ingredient_unit, - 'detail' => $this->faker->boolean() ?: Words::randomWords('a'), + 'detail' => $this->faker->boolean() ? Words::randomWords('a') : null, 'weight' => $this->faker->numberBetween(0, 50), 'parent_id' => Recipe::factory(), 'parent_type' => Recipe::class, diff --git a/database/Factories/JournalEntryFactory.php b/database/Factories/JournalEntryFactory.php index 8a4d8e3..0c6bad2 100644 --- a/database/Factories/JournalEntryFactory.php +++ b/database/Factories/JournalEntryFactory.php @@ -4,6 +4,7 @@ namespace Database\Factories; use App\Models\JournalEntry; use App\Models\User; +use Database\Support\Words; use Illuminate\Database\Eloquent\Factories\Factory; class JournalEntryFactory extends Factory @@ -21,13 +22,13 @@ class JournalEntryFactory extends Factory return [ 'user_id' => User::factory(), 'date' => $this->faker->dateTimeThisMonth, - 'summary' => $this->faker->realText(50), + 'summary' => Words::randomWords($this->faker->randomElement(['n', 'n, n', 'n, n, n'])), 'calories' => $this->faker->randomFloat(1, 0, 500), - 'fat' => $this->faker->randomFloat(1, 0, 50), - 'cholesterol' => $this->faker->randomFloat(1, 0, 2000), - 'sodium' => $this->faker->randomFloat(1, 0, 2000), - 'carbohydrates' => $this->faker->randomFloat(1, 0, 100), - 'protein' => $this->faker->randomFloat(1, 0, 100), + 'fat' => $this->faker->randomFloat(1, 0, 20), + 'cholesterol' => $this->faker->randomFloat(1, 0, 200), + 'sodium' => $this->faker->randomFloat(1, 0, 500), + 'carbohydrates' => $this->faker->randomFloat(1, 0, 40), + 'protein' => $this->faker->randomFloat(1, 0, 20), 'meal' => $this->faker->randomElement(['breakfast', 'lunch', 'dinner', 'snacks']), ]; } diff --git a/database/Factories/RecipeFactory.php b/database/Factories/RecipeFactory.php index d977415..95dea44 100644 --- a/database/Factories/RecipeFactory.php +++ b/database/Factories/RecipeFactory.php @@ -24,15 +24,15 @@ class RecipeFactory extends Factory { $description = htmlspecialchars($this->faker->realText(500)); return [ - 'name' => Words::randomWords(Arr::random(['npan', 'npn', 'anpn']), TRUE), + 'name' => Words::randomWords(Arr::random(['npan', 'npn', 'anpn'])), 'description' => "
{$description}
", - 'description_delta' => '{"ops":[{"insert":"' . $description . '\n"}]}"', + 'description_delta' => '{"ops":[{"insert":"' . htmlentities($description) . '\n"}]}"', 'time_prep' => $this->faker->numberBetween(0, 20), 'time_cook' => $this->faker->numberBetween(0, 90), 'source' => $this->faker->optional()->url, 'servings' => $this->faker->numberBetween(1, 10), 'weight' => $this->faker->randomFloat(1, 60, 2000), - 'tags' => Words::randomWords(Arr::random(['a', 'aa', 'aaa'])), + 'tags' => Words::randomWords(Arr::random(['a', 'aa', 'aaa']), TRUE), ]; } diff --git a/database/Factories/RecipeSeparatorFactory.php b/database/Factories/RecipeSeparatorFactory.php index db1ec52..5a9e7bb 100644 --- a/database/Factories/RecipeSeparatorFactory.php +++ b/database/Factories/RecipeSeparatorFactory.php @@ -19,8 +19,8 @@ class RecipeSeparatorFactory extends Factory { return [ 'container' => 'ingredients', - 'weight' => $this->faker->numberBetween(0, 100), - 'text' => $this->faker->optional()->realText(20), + 'weight' => $this->faker->numberBetween(0, 20), + 'text' => $this->faker->optional()->words(rand(1, 3), TRUE), ]; } } diff --git a/database/Factories/RecipeStepFactory.php b/database/Factories/RecipeStepFactory.php index 1b45723..066e0d0 100644 --- a/database/Factories/RecipeStepFactory.php +++ b/database/Factories/RecipeStepFactory.php @@ -3,6 +3,7 @@ namespace Database\Factories; use App\Models\RecipeStep; +use Database\Support\Words; use Illuminate\Database\Eloquent\Factories\Factory; class RecipeStepFactory extends Factory @@ -17,9 +18,10 @@ class RecipeStepFactory extends Factory */ public function definition(): array { + $word_combos = ['v', 'vn', 'van', 'vnpan', 'vanpn']; return [ 'number' => $this->faker->numberBetween(1, 50), - 'step' => $this->faker->realText(500), + 'step' => Words::randomWords($this->faker->randomElement($word_combos)), ]; } } diff --git a/database/Seeders/DatabaseSeeder.php b/database/Seeders/DatabaseSeeder.php index 6a8e10a..3c807e7 100644 --- a/database/Seeders/DatabaseSeeder.php +++ b/database/Seeders/DatabaseSeeder.php @@ -4,11 +4,16 @@ namespace Database\Seeders; use App\Models\Food; use App\Models\Goal; +use App\Models\IngredientAmount; use App\Models\JournalEntry; use App\Models\Recipe; use App\Models\User; +use App\Support\Nutrients; use Illuminate\Database\Seeder; +use Illuminate\Support\Carbon; +use Illuminate\Support\Collection; use Illuminate\Support\Facades\Hash; +use Illuminate\Support\Facades\Storage; use Illuminate\Support\Str; class DatabaseSeeder extends Seeder @@ -24,16 +29,52 @@ class DatabaseSeeder extends Seeder 'name' => 'Admin', 'remember_token' => Str::random(10), ]); - // @todo Make this more fine tuned for different macros. - Goal::factory()->for($user)->count(5)->create(); - Food::factory()->count(100)->create(); - // @todo Create with media. - Recipe::factory() - ->hasIngredientAmounts(rand(2, 20)) + + $goals = []; + foreach (Nutrients::all() as $nutrient) { + $goals[] = [ + 'frequency' => 'daily', + 'name' => $nutrient['value'], + 'goal' => $nutrient['rdi'], + ]; + } + Goal::factory()->for($user)->createMany($goals); + + $foods = Food::factory()->count(100)->create(); + $recipes = Recipe::factory() ->hasSteps(rand(5, 20)) - ->hasIngredientSeparators(rand(0, 5)) - ->count(50) + ->count(25) ->create(); - JournalEntry::factory()->for($user)->count(100)->create(); + + $storage = Storage::disk('seeder'); + $photos = new Collection($storage->files('photos')); + /** @var \App\Models\Recipe $recipe */ + foreach ($recipes as $recipe) { + $ingredients = []; + for ($i = 0; $i < rand(1, 20); $i++) { + $ingredients[] = IngredientAmount::factory() + ->for($recipe, 'parent') + ->for($foods->random(), 'ingredient') + ->create([ + 'weight' => $i, + ]); + } + $recipe->ingredientAmounts()->saveMany($ingredients); + + $recipe->addMediaFromStream($storage->get($photos->pop())) + ->usingName($recipe->name) + ->usingFileName("{$recipe->slug}.jpg") + ->preservingOriginal() + ->toMediaCollection(); + } + + for ($i = 0; $i <= 31; $i++) { + JournalEntry::factory() + ->for($user) + ->count(rand(5, 12)) + ->create(['date' => Carbon::now()->sub('day', $i)]); + } + + } } diff --git a/database/Support/Words.php b/database/Support/Words.php index c6e1441..e4833cd 100644 --- a/database/Support/Words.php +++ b/database/Support/Words.php @@ -26,8 +26,8 @@ class Words } $words = new Collection(); - $storage = Storage::disk('wordlists'); - foreach ($storage->files($method) as $file) { + $storage = Storage::disk('seeder'); + foreach ($storage->files("wordlists/{$method}") as $file) { $contents = array_filter(explode("\n", $storage->get($file))); $words->push(...$contents); } @@ -47,7 +47,7 @@ class Words * - p: preposition, and * - v: verb. */ - public static function randomWords(string $format = 'an', $asText = false): array|string { + public static function randomWords(string $format = 'an', $asArray = false): array|string { $words = []; foreach (str_split($format) as $type) { $words[] = match ($type) { @@ -58,10 +58,10 @@ class Words default => NULL }; } - if ($asText) { - $words = implode(' ', $words); + if ($asArray) { + return $words; } - return $words; + return implode(' ', $words); } } diff --git a/storage/seeder/photos/alex-munsell-Yr4n8O_3UPc-unsplash.jpg b/storage/seeder/photos/alex-munsell-Yr4n8O_3UPc-unsplash.jpg new file mode 100755 index 0000000..97f6b4f Binary files /dev/null and b/storage/seeder/photos/alex-munsell-Yr4n8O_3UPc-unsplash.jpg differ diff --git a/storage/seeder/photos/alex-munsell-auIbTAcSH6E-unsplash.jpg b/storage/seeder/photos/alex-munsell-auIbTAcSH6E-unsplash.jpg new file mode 100755 index 0000000..287a381 Binary files /dev/null and b/storage/seeder/photos/alex-munsell-auIbTAcSH6E-unsplash.jpg differ diff --git a/storage/seeder/photos/anna-pelzer-IGfIGP5ONV0-unsplash.jpg b/storage/seeder/photos/anna-pelzer-IGfIGP5ONV0-unsplash.jpg new file mode 100755 index 0000000..5630471 Binary files /dev/null and b/storage/seeder/photos/anna-pelzer-IGfIGP5ONV0-unsplash.jpg differ diff --git a/storage/seeder/photos/anna-tukhfatullina-food-photographer-stylist-Mzy-OjtCI70-unsplash.jpg b/storage/seeder/photos/anna-tukhfatullina-food-photographer-stylist-Mzy-OjtCI70-unsplash.jpg new file mode 100755 index 0000000..a1238fc Binary files /dev/null and b/storage/seeder/photos/anna-tukhfatullina-food-photographer-stylist-Mzy-OjtCI70-unsplash.jpg differ diff --git a/storage/seeder/photos/annie-spratt-R3LcfTvcGWY-unsplash.jpg b/storage/seeder/photos/annie-spratt-R3LcfTvcGWY-unsplash.jpg new file mode 100755 index 0000000..a3f302c Binary files /dev/null and b/storage/seeder/photos/annie-spratt-R3LcfTvcGWY-unsplash.jpg differ diff --git a/storage/seeder/photos/brooke-lark--F_5g8EEHYE-unsplash.jpg b/storage/seeder/photos/brooke-lark--F_5g8EEHYE-unsplash.jpg new file mode 100755 index 0000000..15a2ecc Binary files /dev/null and b/storage/seeder/photos/brooke-lark--F_5g8EEHYE-unsplash.jpg differ diff --git a/storage/seeder/photos/brooke-lark-1Rm9GLHV0UA-unsplash.jpg b/storage/seeder/photos/brooke-lark-1Rm9GLHV0UA-unsplash.jpg new file mode 100755 index 0000000..d53cbe9 Binary files /dev/null and b/storage/seeder/photos/brooke-lark-1Rm9GLHV0UA-unsplash.jpg differ diff --git a/storage/seeder/photos/brooke-lark-HlNcigvUi4Q-unsplash.jpg b/storage/seeder/photos/brooke-lark-HlNcigvUi4Q-unsplash.jpg new file mode 100755 index 0000000..ef15122 Binary files /dev/null and b/storage/seeder/photos/brooke-lark-HlNcigvUi4Q-unsplash.jpg differ diff --git a/storage/seeder/photos/brooke-lark-M4E7X3z80PQ-unsplash.jpg b/storage/seeder/photos/brooke-lark-M4E7X3z80PQ-unsplash.jpg new file mode 100755 index 0000000..9a6d61d Binary files /dev/null and b/storage/seeder/photos/brooke-lark-M4E7X3z80PQ-unsplash.jpg differ diff --git a/storage/seeder/photos/brooke-lark-W9OKrxBqiZA-unsplash.jpg b/storage/seeder/photos/brooke-lark-W9OKrxBqiZA-unsplash.jpg new file mode 100755 index 0000000..cd8036b Binary files /dev/null and b/storage/seeder/photos/brooke-lark-W9OKrxBqiZA-unsplash.jpg differ diff --git a/storage/seeder/photos/brooke-lark-jUPOXXRNdcA-unsplash.jpg b/storage/seeder/photos/brooke-lark-jUPOXXRNdcA-unsplash.jpg new file mode 100755 index 0000000..183f22c Binary files /dev/null and b/storage/seeder/photos/brooke-lark-jUPOXXRNdcA-unsplash.jpg differ diff --git a/storage/seeder/photos/brooke-lark-oaz0raysASk-unsplash.jpg b/storage/seeder/photos/brooke-lark-oaz0raysASk-unsplash.jpg new file mode 100755 index 0000000..4134feb Binary files /dev/null and b/storage/seeder/photos/brooke-lark-oaz0raysASk-unsplash.jpg differ diff --git a/storage/seeder/photos/cala-w6ftFbPCs9I-unsplash.jpg b/storage/seeder/photos/cala-w6ftFbPCs9I-unsplash.jpg new file mode 100755 index 0000000..2ee982b Binary files /dev/null and b/storage/seeder/photos/cala-w6ftFbPCs9I-unsplash.jpg differ diff --git a/storage/seeder/photos/casey-lee-awj7sRviVXo-unsplash.jpg b/storage/seeder/photos/casey-lee-awj7sRviVXo-unsplash.jpg new file mode 100755 index 0000000..bebdfb1 Binary files /dev/null and b/storage/seeder/photos/casey-lee-awj7sRviVXo-unsplash.jpg differ diff --git a/storage/seeder/photos/davide-cantelli-jpkfc5_d-DI-unsplash.jpg b/storage/seeder/photos/davide-cantelli-jpkfc5_d-DI-unsplash.jpg new file mode 100755 index 0000000..d3ed999 Binary files /dev/null and b/storage/seeder/photos/davide-cantelli-jpkfc5_d-DI-unsplash.jpg differ diff --git a/storage/seeder/photos/eaters-collective-12eHC6FxPyg-unsplash.jpg b/storage/seeder/photos/eaters-collective-12eHC6FxPyg-unsplash.jpg new file mode 100755 index 0000000..b0a2e5b Binary files /dev/null and b/storage/seeder/photos/eaters-collective-12eHC6FxPyg-unsplash.jpg differ diff --git a/storage/seeder/photos/edgar-castrejon-1SPu0KT-Ejg-unsplash.jpg b/storage/seeder/photos/edgar-castrejon-1SPu0KT-Ejg-unsplash.jpg new file mode 100755 index 0000000..ca9b484 Binary files /dev/null and b/storage/seeder/photos/edgar-castrejon-1SPu0KT-Ejg-unsplash.jpg differ diff --git a/storage/seeder/photos/eiliv-sonas-aceron-ZuIDLSz3XLg-unsplash.jpg b/storage/seeder/photos/eiliv-sonas-aceron-ZuIDLSz3XLg-unsplash.jpg new file mode 100755 index 0000000..0747aa0 Binary files /dev/null and b/storage/seeder/photos/eiliv-sonas-aceron-ZuIDLSz3XLg-unsplash.jpg differ diff --git a/storage/seeder/photos/emiliano-vittoriosi-OFismyezPnY-unsplash.jpg b/storage/seeder/photos/emiliano-vittoriosi-OFismyezPnY-unsplash.jpg new file mode 100755 index 0000000..8521efb Binary files /dev/null and b/storage/seeder/photos/emiliano-vittoriosi-OFismyezPnY-unsplash.jpg differ diff --git a/storage/seeder/photos/emy-XoByiBymX20-unsplash.jpg b/storage/seeder/photos/emy-XoByiBymX20-unsplash.jpg new file mode 100755 index 0000000..4036a06 Binary files /dev/null and b/storage/seeder/photos/emy-XoByiBymX20-unsplash.jpg differ diff --git a/storage/seeder/photos/jonas-allert-MZ0U0g6RQpQ-unsplash.jpg b/storage/seeder/photos/jonas-allert-MZ0U0g6RQpQ-unsplash.jpg new file mode 100755 index 0000000..cc2ae10 Binary files /dev/null and b/storage/seeder/photos/jonas-allert-MZ0U0g6RQpQ-unsplash.jpg differ diff --git a/storage/seeder/photos/joseph-gonzalez-fdlZBWIP0aM-unsplash.jpg b/storage/seeder/photos/joseph-gonzalez-fdlZBWIP0aM-unsplash.jpg new file mode 100755 index 0000000..e0dab9a Binary files /dev/null and b/storage/seeder/photos/joseph-gonzalez-fdlZBWIP0aM-unsplash.jpg differ diff --git a/storage/seeder/photos/joseph-gonzalez-zcUgjyqEwe8-unsplash.jpg b/storage/seeder/photos/joseph-gonzalez-zcUgjyqEwe8-unsplash.jpg new file mode 100755 index 0000000..cd96056 Binary files /dev/null and b/storage/seeder/photos/joseph-gonzalez-zcUgjyqEwe8-unsplash.jpg differ diff --git a/storage/seeder/photos/lily-banse--YHSwy6uqvk-unsplash.jpg b/storage/seeder/photos/lily-banse--YHSwy6uqvk-unsplash.jpg new file mode 100755 index 0000000..de8bae6 Binary files /dev/null and b/storage/seeder/photos/lily-banse--YHSwy6uqvk-unsplash.jpg differ diff --git a/storage/seeder/photos/rachel-park-hrlvr2ZlUNk-unsplash.jpg b/storage/seeder/photos/rachel-park-hrlvr2ZlUNk-unsplash.jpg new file mode 100755 index 0000000..e2e3175 Binary files /dev/null and b/storage/seeder/photos/rachel-park-hrlvr2ZlUNk-unsplash.jpg differ diff --git a/storage/wordlists/LICENSE.txt b/storage/seeder/wordlists/LICENSE.txt similarity index 100% rename from storage/wordlists/LICENSE.txt rename to storage/seeder/wordlists/LICENSE.txt diff --git a/storage/wordlists/SOURCE.txt b/storage/seeder/wordlists/SOURCE.txt similarity index 100% rename from storage/wordlists/SOURCE.txt rename to storage/seeder/wordlists/SOURCE.txt diff --git a/storage/wordlists/adjectives/complexity.txt b/storage/seeder/wordlists/adjectives/complexity.txt similarity index 100% rename from storage/wordlists/adjectives/complexity.txt rename to storage/seeder/wordlists/adjectives/complexity.txt diff --git a/storage/wordlists/adjectives/shape.txt b/storage/seeder/wordlists/adjectives/shape.txt similarity index 100% rename from storage/wordlists/adjectives/shape.txt rename to storage/seeder/wordlists/adjectives/shape.txt diff --git a/storage/wordlists/adjectives/size.txt b/storage/seeder/wordlists/adjectives/size.txt similarity index 100% rename from storage/wordlists/adjectives/size.txt rename to storage/seeder/wordlists/adjectives/size.txt diff --git a/storage/wordlists/adjectives/taste.txt b/storage/seeder/wordlists/adjectives/taste.txt similarity index 100% rename from storage/wordlists/adjectives/taste.txt rename to storage/seeder/wordlists/adjectives/taste.txt diff --git a/storage/wordlists/adjectives/temperature.txt b/storage/seeder/wordlists/adjectives/temperature.txt similarity index 100% rename from storage/wordlists/adjectives/temperature.txt rename to storage/seeder/wordlists/adjectives/temperature.txt diff --git a/storage/wordlists/nouns/cheese.txt b/storage/seeder/wordlists/nouns/cheese.txt similarity index 100% rename from storage/wordlists/nouns/cheese.txt rename to storage/seeder/wordlists/nouns/cheese.txt diff --git a/storage/wordlists/nouns/condiments.txt b/storage/seeder/wordlists/nouns/condiments.txt similarity index 100% rename from storage/wordlists/nouns/condiments.txt rename to storage/seeder/wordlists/nouns/condiments.txt diff --git a/storage/wordlists/nouns/fast_food.txt b/storage/seeder/wordlists/nouns/fast_food.txt similarity index 100% rename from storage/wordlists/nouns/fast_food.txt rename to storage/seeder/wordlists/nouns/fast_food.txt diff --git a/storage/wordlists/nouns/fish.txt b/storage/seeder/wordlists/nouns/fish.txt similarity index 100% rename from storage/wordlists/nouns/fish.txt rename to storage/seeder/wordlists/nouns/fish.txt diff --git a/storage/wordlists/nouns/food.txt b/storage/seeder/wordlists/nouns/food.txt similarity index 100% rename from storage/wordlists/nouns/food.txt rename to storage/seeder/wordlists/nouns/food.txt diff --git a/storage/wordlists/nouns/fruit.txt b/storage/seeder/wordlists/nouns/fruit.txt similarity index 100% rename from storage/wordlists/nouns/fruit.txt rename to storage/seeder/wordlists/nouns/fruit.txt diff --git a/storage/wordlists/nouns/meat.txt b/storage/seeder/wordlists/nouns/meat.txt similarity index 100% rename from storage/wordlists/nouns/meat.txt rename to storage/seeder/wordlists/nouns/meat.txt diff --git a/storage/wordlists/prepositions/common.txt b/storage/seeder/wordlists/prepositions/common.txt similarity index 100% rename from storage/wordlists/prepositions/common.txt rename to storage/seeder/wordlists/prepositions/common.txt diff --git a/storage/wordlists/verbs/cooking.txt b/storage/seeder/wordlists/verbs/cooking.txt similarity index 100% rename from storage/wordlists/verbs/cooking.txt rename to storage/seeder/wordlists/verbs/cooking.txt diff --git a/storage/wordlists/verbs/destruction.txt b/storage/seeder/wordlists/verbs/destruction.txt similarity index 100% rename from storage/wordlists/verbs/destruction.txt rename to storage/seeder/wordlists/verbs/destruction.txt diff --git a/storage/wordlists/verbs/manipulation.txt b/storage/seeder/wordlists/verbs/manipulation.txt similarity index 100% rename from storage/wordlists/verbs/manipulation.txt rename to storage/seeder/wordlists/verbs/manipulation.txt diff --git a/storage/wordlists/verbs/quantity.txt b/storage/seeder/wordlists/verbs/quantity.txt similarity index 100% rename from storage/wordlists/verbs/quantity.txt rename to storage/seeder/wordlists/verbs/quantity.txt