mirror of
https://github.com/pacnpal/thrillwiki_laravel.git
synced 2025-12-20 07:31:09 -05:00
Add photo management features, update database configuration, and enhance park model seeding
This commit is contained in:
@@ -17,12 +17,8 @@ class OperatorFactory extends Factory
|
||||
'description' => fake()->paragraph(),
|
||||
'website' => fake()->url(),
|
||||
'headquarters' => fake()->city() . ', ' . fake()->country(),
|
||||
'founded_year' => fake()->year(),
|
||||
'total_parks' => fake()->numberBetween(1, 10),
|
||||
'total_rides' => fake()->numberBetween(20, 200),
|
||||
'annual_visitors' => fake()->numberBetween(1000000, 50000000),
|
||||
'employee_count' => fake()->numberBetween(1000, 50000),
|
||||
'revenue' => fake()->numberBetween(100000000, 5000000000),
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -26,8 +26,8 @@ class ParkFactory extends Factory
|
||||
'total_areas' => fake()->numberBetween(3, 8),
|
||||
'operating_areas' => fake()->numberBetween(2, 8),
|
||||
'closed_areas' => fake()->numberBetween(0, 2),
|
||||
'total_rides' => fake()->numberBetween(20, 60),
|
||||
'total_coasters' => fake()->numberBetween(2, 15),
|
||||
'ride_count' => fake()->numberBetween(20, 60),
|
||||
'coaster_count' => fake()->numberBetween(2, 15),
|
||||
'total_flat_rides' => fake()->numberBetween(10, 30),
|
||||
'total_water_rides' => fake()->numberBetween(1, 5),
|
||||
'total_daily_capacity' => fake()->numberBetween(10000, 50000),
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('photos', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->morphs('photoable');
|
||||
$table->string('title')->nullable();
|
||||
$table->text('description')->nullable();
|
||||
$table->string('file_path');
|
||||
$table->string('file_name');
|
||||
$table->integer('file_size')->nullable();
|
||||
$table->string('mime_type')->nullable();
|
||||
$table->integer('width')->nullable();
|
||||
$table->integer('height')->nullable();
|
||||
$table->integer('position')->default(0);
|
||||
$table->boolean('is_featured')->default(false);
|
||||
$table->string('alt_text')->nullable();
|
||||
$table->string('credit')->nullable();
|
||||
$table->string('source_url')->nullable();
|
||||
$table->json('metadata')->nullable();
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('photos');
|
||||
}
|
||||
};
|
||||
@@ -19,5 +19,10 @@ class DatabaseSeeder extends Seeder
|
||||
'name' => 'Test User',
|
||||
'email' => 'test@example.com',
|
||||
]);
|
||||
|
||||
// Seed parks
|
||||
$this->call([
|
||||
ParkSeeder::class,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
40
database/seeders/ParkSeeder.php
Normal file
40
database/seeders/ParkSeeder.php
Normal file
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\Park;
|
||||
use App\Enums\ParkStatus;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class ParkSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
// Create a test park
|
||||
Park::create([
|
||||
'name' => 'Test Park',
|
||||
'slug' => 'test-park',
|
||||
'description' => 'This is a test park for demonstrating the photo management system.',
|
||||
'status' => ParkStatus::OPERATING,
|
||||
'opening_date' => '2020-01-01',
|
||||
'size_acres' => 100.5,
|
||||
'operating_season' => 'Year-round',
|
||||
'website' => 'https://example.com',
|
||||
]);
|
||||
|
||||
// Create a second park
|
||||
Park::create([
|
||||
'name' => 'Adventure World',
|
||||
'slug' => 'adventure-world',
|
||||
'description' => 'A thrilling adventure park with exciting rides and attractions.',
|
||||
'status' => ParkStatus::OPERATING,
|
||||
'opening_date' => '2015-05-15',
|
||||
'size_acres' => 250.75,
|
||||
'operating_season' => 'March to October',
|
||||
'website' => 'https://adventureworld-example.com',
|
||||
]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user