refactor(outlet): make landmark field nullable in outlets table and update seeder data

This commit is contained in:
Yoga Pangestu 2025-10-18 15:34:56 +07:00
parent 3e0ff70eea
commit 9f9089ebdd
3 changed files with 43 additions and 38 deletions

View File

@ -18,7 +18,7 @@ public function up(): void
$table->string('slug', 120);
$table->string('phone_number', 20);
$table->text('address');
$table->string('landmark', 30);
$table->string('landmark', 30)->nullable();
$table->text('maps_url')->nullable();
$table->enum('status', [OutletStatus::values()])->default(OutletStatus::OPERATIONAL)->comment(OutletStatus::comment());
$table->date('opened_date');

View File

@ -12,42 +12,54 @@ class OutletSeeder extends Seeder
{
public function run(): void
{
$outlet1 = Outlet::create([
'name' => 'Outlet 1',
'slug' => 'outlet-1',
'phone_number' => '0821 2149 5806',
'address' => 'Jl. Taman Pahlawan No.41, Nagri Kaler, Kec. Purwakarta, Kabupaten Purwakarta, Jawa Barat 41119',
'landmark' => 'Samping Gacoan',
'status' => OutletStatus::OPERATIONAL,
'opened_date' => now()->toDateString(),
]);
$outlets = [
[
'name' => 'Toko 1',
'slug' => 'toko-1',
'phone_number' => '085135557595',
'address' => 'Jl. Taman Pahlawan No.41, Nagri Kaler, Kec. Purwakarta, Kabupaten Purwakarta, Jawa Barat 41119',
'landmark' => 'Samping Gacoan',
],
[
'name' => 'Outlet 2',
'slug' => 'outlet-2',
'phone_number' => '085135557595',
'address' => 'Jl. Ipik Gandamanah, Kabupaten Purwakarta, Jawa Barat 41117',
'landmark' => 'Samping Global Bakery',
],
[
'name' => 'Outlet 3',
'slug' => 'outlet-3',
'phone_number' => '085135557595',
'address' => 'Pabuaran, Subang Regency, West Java',
'landmark' => null,
],
[
'name' => 'Outlet 4',
'slug' => 'outlet-4',
'phone_number' => '085135557595',
'address' => 'Jl. Raya Citeko, Pamoyanan, Kec. Plered, Kabupaten Purwakarta, Jawa Barat',
'landmark' => null,
],
];
foreach (Day::cases() as $day) {
OpeningHour::insert([
'outlet_id' => $outlet1->id,
foreach ($outlets as $data) {
$outlet = Outlet::create([
...$data,
'status' => OutletStatus::OPERATIONAL,
'opened_date' => now()->toDateString(),
]);
$hours = collect(Day::cases())->map(fn($day) => [
'outlet_id' => $outlet->id,
'day' => $day->value,
'open_time' => '09:00:00',
'close_time' => '21:00:00',
]);
}
])->toArray();
$outlet2 = Outlet::create([
'name' => 'Outlet 2',
'slug' => 'outlet-2',
'phone_number' => '0821 2149 5806',
'address' => 'Toko Yadi Parfum, Jl. Ipik Gandamanah, Kabupaten Purwakarta, Jawa Barat 41117',
'landmark' => 'Samping Global Bakeri',
'status' => OutletStatus::OPERATIONAL,
'opened_date' => now()->toDateString(),
]);
$outlet->facilities()->create(['name' => 'Parkir']);
foreach (Day::cases() as $day) {
OpeningHour::insert([
'outlet_id' => $outlet2->id,
'day' => $day->value,
'open_time' => '09:00:00',
'close_time' => '21:00:00',
]);
OpeningHour::insert($hours);
}
}
}

View File

@ -24,7 +24,6 @@ public function run(): void
'limit_per_user' => 2,
'start_date' => now()->subDays(5),
'end_date' => now()->addMonth(),
'is_active' => IsActive::ACTIVE,
],
[
'name' => 'Diskon 20%',
@ -37,7 +36,6 @@ public function run(): void
'limit_per_user' => 1,
'start_date' => now(),
'end_date' => now()->addDays(30),
'is_active' => IsActive::ACTIVE,
],
[
'name' => 'Potongan Rp25K',
@ -50,7 +48,6 @@ public function run(): void
'limit_per_user' => 3,
'start_date' => now(),
'end_date' => now()->addDays(15),
'is_active' => IsActive::ACTIVE,
],
[
'name' => 'Potongan Rp50K',
@ -63,7 +60,6 @@ public function run(): void
'limit_per_user' => 1,
'start_date' => now()->addDays(3),
'end_date' => now()->addDays(60),
'is_active' => IsActive::ACTIVE,
],
[
'name' => 'Gratis Ongkir',
@ -76,7 +72,6 @@ public function run(): void
'limit_per_user' => 5,
'start_date' => now(),
'end_date' => now()->addDays(90),
'is_active' => IsActive::ACTIVE,
],
[
'name' => 'Flash Sale 30%',
@ -89,7 +84,6 @@ public function run(): void
'limit_per_user' => 1,
'start_date' => now()->subDay(),
'end_date' => now()->addDay(),
'is_active' => IsActive::ACTIVE,
],
[
'name' => 'Spesial Member',
@ -102,7 +96,6 @@ public function run(): void
'limit_per_user' => null,
'start_date' => now(),
'end_date' => null,
'is_active' => IsActive::ACTIVE,
],
];