Add seeders and factories for all models #7

Merged
rlong merged 1 commits from feature/add-model-seeders into master 2026-04-29 20:39:40 -04:00
14 changed files with 351 additions and 9 deletions
+125 -8
View File
@@ -23,14 +23,131 @@ $factory->define(App\User::class, function (Faker\Generator $faker) {
]; ];
}); });
//Bidder // Bidders
$factory->define(App\Models\Bidder::class, function (Faker\Generator $faker) { $factory->define(App\Models\Bidders::class, function (Faker\Generator $faker) {
static $password;
return [ return [
'name' => $faker->name, 'bidder_fname' => $faker->firstName,
'email' => $faker->unique()->safeEmail, 'bidder_lname' => $faker->lastName,
'password' => $password ?: $password = bcrypt('secret'), 'bidder_addr' => $faker->streetAddress,
'remember_token' => str_random(10), 'bidder_city' => $faker->city,
'bidder_state' => $faker->stateAbbr,
'bidder_zip' => $faker->postcode,
'bidder_phone' => $faker->phoneNumber,
'bidder_email' => $faker->unique()->safeEmail,
'bidder_assigned_number' => $faker->unique()->numberBetween(1, 1000),
];
});
// Items
$factory->define(App\Models\Items::class, function (Faker\Generator $faker) {
return [
'item_desc' => $faker->sentence(3),
'item_min_bid' => $faker->numberBetween(10, 100),
'item_est_value' => $faker->numberBetween(50, 500),
'item_assigned_num' => $faker->unique()->numberBetween(1, 500),
];
});
// CarShowCategory
$factory->define(App\Models\CarShowCategory::class, function (Faker\Generator $faker) {
return [
'category_name' => $faker->words(2, true),
'vehicle_type' => $faker->boolean,
];
});
// Vehicles
$factory->define(App\Models\Vehicles::class, function (Faker\Generator $faker) {
return [
'year' => $faker->year,
'make' => $faker->company,
'model' => $faker->word,
'type' => function () {
return factory(App\Models\CarShowCategory::class)->create()->id;
},
'doNotJudge' => $faker->boolean,
'owner' => function () {
return factory(App\Models\Bidders::class)->create()->bidder_assigned_number;
},
];
});
// PaymentMethods
$factory->define(App\Models\PaymentMethods::class, function (Faker\Generator $faker) {
return [
'pm_name' => $faker->randomElement(['Cash', 'Check', 'Credit Card']),
];
});
// Judges
$factory->define(App\Models\Judges::class, function (Faker\Generator $faker) {
return [
'judge_number' => $faker->unique()->numberBetween(1, 50),
];
});
// VehicleScores
$factory->define(App\Models\VehicleScores::class, function (Faker\Generator $faker) {
return [
'judge' => function () {
return factory(App\Models\Judges::class)->create()->id;
},
'overall_score' => $faker->numberBetween(1, 100),
'vehicle' => function () {
return factory(App\Models\Vehicles::class)->create()->id;
},
];
});
// PeoplesChoice
$factory->define(App\Models\PeoplesChoice::class, function (Faker\Generator $faker) {
return [
'vehicle' => function () {
return factory(App\Models\Vehicles::class)->create()->id;
},
'pc_count' => $faker->numberBetween(0, 50),
];
});
// WinningBids
$factory->define(App\Models\WinningBids::class, function (Faker\Generator $faker) {
return [
'winning_bidder_num' => function () {
return factory(App\Models\Bidders::class)->create()->idbidders;
},
'winning_cost' => $faker->numberBetween(10, 1000),
'winning_item_num' => function () {
return factory(App\Models\Items::class)->create()->iditems;
},
];
});
// Checkout
$factory->define(App\Models\Checkout::class, function (Faker\Generator $faker) {
return [
'bidder_num' => function () {
return factory(App\Models\Bidders::class)->create()->idbidders;
},
'winnertotal' => $faker->numberBetween(10, 2000),
'payment_method' => function () {
return factory(App\Models\PaymentMethods::class)->create()->pm_id;
},
'check_number' => $faker->optional()->numberBetween(100, 999),
'cc_transaction' => $faker->optional()->uuid,
'cc_amount' => $faker->optional()->numberBetween(10, 2000),
];
});
// CarShowWinner
$factory->define(App\Models\CarShowWinner::class, function (Faker\Generator $faker) {
return [
'vehicle' => function () {
return factory(App\Models\Vehicles::class)->create()->id;
},
'category' => function () {
return factory(App\Models\CarShowCategory::class)->create()->id;
},
'place' => $faker->numberBetween(1, 3),
'total_score' => $faker->numberBetween(50, 300),
]; ];
}); });
+12
View File
@@ -0,0 +1,12 @@
<?php
use Illuminate\Database\Seeder;
use App\Models\Bidders;
class BiddersTableSeeder extends Seeder
{
public function run()
{
factory(Bidders::class, 50)->create();
}
}
@@ -0,0 +1,12 @@
<?php
use Illuminate\Database\Seeder;
use App\Models\CarShowCategory;
class CarShowCategoryTableSeeder extends Seeder
{
public function run()
{
factory(CarShowCategory::class, 10)->create();
}
}
@@ -0,0 +1,25 @@
<?php
use Illuminate\Database\Seeder;
use App\Models\CarShowWinner;
use App\Models\Vehicles;
use App\Models\CarShowCategory;
class CarShowWinnerTableSeeder extends Seeder
{
public function run()
{
$categories = CarShowCategory::all();
$vehicles = Vehicles::all();
foreach ($categories as $category) {
for ($i = 1; $i <= 3; $i++) {
factory(CarShowWinner::class)->create([
'category' => $category->id,
'vehicle' => $vehicles->random()->id,
'place' => $i,
]);
}
}
}
}
+24
View File
@@ -0,0 +1,24 @@
<?php
use Illuminate\Database\Seeder;
use App\Models\Checkout;
use App\Models\Bidders;
use App\Models\PaymentMethods;
class CheckoutTableSeeder extends Seeder
{
public function run()
{
$bidders = Bidders::all();
$paymentMethods = PaymentMethods::all();
foreach ($bidders as $bidder) {
if (rand(0, 1)) {
factory(Checkout::class)->create([
'bidder_num' => $bidder->idbidders,
'payment_method' => $paymentMethods->random()->pm_id,
]);
}
}
}
}
+12 -1
View File
@@ -11,6 +11,17 @@ class DatabaseSeeder extends Seeder
*/ */
public function run() public function run()
{ {
// $this->call(UsersTableSeeder::class); $this->call(UsersTableSeeder::class);
$this->call(PaymentMethodsTableSeeder::class);
$this->call(CarShowCategoryTableSeeder::class);
$this->call(BiddersTableSeeder::class);
$this->call(ItemsTableSeeder::class);
$this->call(JudgesTableSeeder::class);
$this->call(VehiclesTableSeeder::class);
$this->call(VehicleScoresTableSeeder::class);
$this->call(PeoplesChoiceTableSeeder::class);
$this->call(WinningBidsTableSeeder::class);
$this->call(CheckoutTableSeeder::class);
$this->call(CarShowWinnerTableSeeder::class);
} }
} }
+12
View File
@@ -0,0 +1,12 @@
<?php
use Illuminate\Database\Seeder;
use App\Models\Items;
class ItemsTableSeeder extends Seeder
{
public function run()
{
factory(Items::class, 30)->create();
}
}
+12
View File
@@ -0,0 +1,12 @@
<?php
use Illuminate\Database\Seeder;
use App\Models\Judges;
class JudgesTableSeeder extends Seeder
{
public function run()
{
factory(Judges::class, 5)->create();
}
}
@@ -0,0 +1,14 @@
<?php
use Illuminate\Database\Seeder;
use App\Models\PaymentMethods;
class PaymentMethodsTableSeeder extends Seeder
{
public function run()
{
PaymentMethods::create(['pm_name' => 'Cash']);
PaymentMethods::create(['pm_name' => 'Check']);
PaymentMethods::create(['pm_name' => 'Credit Card']);
}
}
@@ -0,0 +1,19 @@
<?php
use Illuminate\Database\Seeder;
use App\Models\PeoplesChoice;
use App\Models\Vehicles;
class PeoplesChoiceTableSeeder extends Seeder
{
public function run()
{
$vehicles = Vehicles::all();
foreach ($vehicles as $vehicle) {
factory(PeoplesChoice::class)->create([
'vehicle' => $vehicle->id,
]);
}
}
}
+12
View File
@@ -0,0 +1,12 @@
<?php
use Illuminate\Database\Seeder;
use App\User;
class UsersTableSeeder extends Seeder
{
public function run()
{
factory(User::class, 10)->create();
}
}
@@ -0,0 +1,24 @@
<?php
use Illuminate\Database\Seeder;
use App\Models\VehicleScores;
use App\Models\Judges;
use App\Models\Vehicles;
class VehicleScoresTableSeeder extends Seeder
{
public function run()
{
$judges = Judges::all();
$vehicles = Vehicles::all();
foreach ($vehicles as $vehicle) {
foreach ($judges as $judge) {
factory(VehicleScores::class)->create([
'judge' => $judge->id,
'vehicle' => $vehicle->id,
]);
}
}
}
}
+24
View File
@@ -0,0 +1,24 @@
<?php
use Illuminate\Database\Seeder;
use App\Models\Vehicles;
use App\Models\CarShowCategory;
use App\Models\Bidders;
class VehiclesTableSeeder extends Seeder
{
public function run()
{
$categories = CarShowCategory::all();
$bidders = Bidders::all();
factory(Vehicles::class, 40)->create([
'type' => function () use ($categories) {
return $categories->random()->id;
},
'owner' => function () use ($bidders) {
return $bidders->random()->bidder_assigned_number;
},
]);
}
}
+24
View File
@@ -0,0 +1,24 @@
<?php
use Illuminate\Database\Seeder;
use App\Models\WinningBids;
use App\Models\Bidders;
use App\Models\Items;
class WinningBidsTableSeeder extends Seeder
{
public function run()
{
$bidders = Bidders::all();
$items = Items::all();
foreach ($items as $item) {
if (rand(0, 1)) {
factory(WinningBids::class)->create([
'winning_bidder_num' => $bidders->random()->idbidders,
'winning_item_num' => $item->iditems,
]);
}
}
}
}