From 82f1f37af6b99b4a244559ff74de3c3aa36332e9 Mon Sep 17 00:00:00 2001 From: xayana Date: Thu, 8 Jan 2026 19:37:31 +0000 Subject: [PATCH] seeder --- ..._230120_create_room_availability_table.php | 2 +- database/seeders/DatabaseSeeder.php | 64 +++++++++++++++---- 2 files changed, 54 insertions(+), 12 deletions(-) diff --git a/database/migrations/2025_12_30_230120_create_room_availability_table.php b/database/migrations/2025_12_30_230120_create_room_availability_table.php index 5738159..c2499f3 100644 --- a/database/migrations/2025_12_30_230120_create_room_availability_table.php +++ b/database/migrations/2025_12_30_230120_create_room_availability_table.php @@ -11,7 +11,7 @@ return new class extends Migration */ public function up(): void { - Schema::create('room_availability', function (Blueprint $table) { + Schema::create('room_availabilities', function (Blueprint $table) { $table->id(); $table->foreignId('room_type_id')->constrained()->onDelete('cascade'); $table->date('date'); diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 6b901f8..a05ad84 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -2,24 +2,66 @@ namespace Database\Seeders; -use App\Models\User; -use Illuminate\Database\Console\Seeds\WithoutModelEvents; use Illuminate\Database\Seeder; +use Illuminate\Support\Facades\DB; +use Illuminate\Support\Facades\Hash; +use App\Models\Admin; +use App\Models\Hotel; +use App\Models\RoomType; +use App\Models\RoomAvailability; class DatabaseSeeder extends Seeder { - use WithoutModelEvents; - /** - * Seed the application's database. + * Run the database seeds. */ public function run(): void { - // User::factory(10)->create(); - - User::factory()->create([ - 'name' => 'Test User', - 'email' => 'test@example.com', + // Создать админа + $admin = Admin::firstOrCreate([ + 'email' => 'admin@hotels.ru', + ], [ + 'name' => 'Admin User', + 'password' => Hash::make('password'), ]); + + // Создать отель + $hotel = Hotel::create([ + 'name' => 'Grand Hotel', + 'address' => '123 Main St', + ]); + + $roomType1 = RoomType::create([ + 'hotel_id' => $hotel->id, + 'name' => 'Двухместный', + 'capacity' => 2, + 'base_price' => 5000, + ]); + + $roomType2 = RoomType::create([ + 'hotel_id' => $hotel->id, + 'name' => 'Люкс', + 'capacity' => 4, + 'base_price' => 10000, + ]); + + $startDate = now()->startOfDay(); + $endDate = now()->addDays(30)->startOfDay(); + + for ($date = $startDate; $date <= $endDate; $date->modify('+1 day')) { + RoomAvailability::create([ + 'room_type_id' => $roomType1->id, + 'date' => $date->format('Y-m-d'), + 'is_available' => true, + 'price_override' => null, + ]); + + RoomAvailability::create([ + 'room_type_id' => $roomType2->id, + 'date' => $date->format('Y-m-d'), + 'is_available' => true, + 'price_override' => null, + ]); + } } -} +} \ No newline at end of file