| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 | <?php
namespace Database\Seeders;
use App\Models\Setting\Discount;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class DiscountSeeder extends Seeder
{
    /**
     * Run the database seeds.
     */
    public function run(): void
    {
        $companyId = DB::table('companies')->first()->id;
        $userId = DB::table('users')->first()->id;
        $salesDiscounts = [
            '4th of July Sale',
            'End of Year Sale',
            'Black Friday Sale',
            'Cyber Monday Sale',
            'Christmas Sale',
        ];
        $purchaseDiscounts = [
            'Bulk Purchase Bargain',
            'Early Payment Discount',
            'First Time Buyer Special',
            'Recurring Purchase Reward',
            'Referral Program Discount',
        ];
        $shuffledDiscounts = [
            ...array_map(static fn($name) => ['name' => $name, 'type' => 'sales'], $salesDiscounts),
            ...array_map(static fn($name) => ['name' => $name, 'type' => 'purchase'], $purchaseDiscounts)
        ];
        shuffle($shuffledDiscounts);
        $allDiscounts = $shuffledDiscounts;
        foreach ($allDiscounts as $discount) {
            Discount::factory()->create([
                'company_id' => $companyId,
                'name' => $discount['name'],
                'type' => $discount['type'],
                'enabled' => false,
                'created_by' => $userId,
                'updated_by' => $userId,
            ]);
        }
        Discount::where('type', 'sales')
            ->where('company_id', $companyId)
            ->first()
            ->update(['enabled' => true]);
        Discount::where('type', 'purchase')
            ->where('company_id', $companyId)
            ->first()
            ->update(['enabled' => true]);
    }
}
 |