<?php

namespace Database\Seeders;

use App\Models\SubscriptionPlan;
use Illuminate\Database\Seeder;

class SubscriptionPlanSeeder extends Seeder
{
    public function run(): void
    {
        SubscriptionPlan::query()
            ->whereIn('name', ['Default', 'Trial', 'Starter', 'Growth', 'Business'])
            ->update(['active' => false]);

        $plans = [
            [
                'name' => 'Free',
                'description' => 'Free for up to 10 users for the first year',
                'base_price_yearly' => 0,
                'base_price_monthly' => 0,
                'per_employee_price' => 0,
                'employee_limit' => 10,
                'billing_type' => 'yearly',
                'default' => 'yes',
                'active' => true,
                'is_custom' => false,
                'is_popular' => false,
                'discount_type' => 'none',
                'discount_value' => 0,
                'position' => 1,
            ],
            [
                'name' => 'Team 25',
                'description' => 'Yearly plan for teams up to 25 employees',
                'base_price_yearly' => 14999,
                'base_price_monthly' => 0,
                'per_employee_price' => 0,
                'employee_limit' => 25,
                'billing_type' => 'yearly',
                'default' => 'no',
                'active' => true,
                'is_custom' => false,
                'is_popular' => true,
                'discount_type' => 'none',
                'discount_value' => 0,
                'position' => 2,
            ],
            [
                'name' => 'Team 50',
                'description' => 'Yearly plan for teams up to 50 employees',
                'base_price_yearly' => 27999,
                'base_price_monthly' => 0,
                'per_employee_price' => 0,
                'employee_limit' => 50,
                'billing_type' => 'yearly',
                'default' => 'no',
                'active' => true,
                'is_custom' => false,
                'is_popular' => false,
                'discount_type' => 'none',
                'discount_value' => 0,
                'position' => 3,
            ],
            [
                'name' => 'Team 100',
                'description' => 'Yearly plan for teams up to 100 employees',
                'base_price_yearly' => 49999,
                'base_price_monthly' => 0,
                'per_employee_price' => 0,
                'employee_limit' => 100,
                'billing_type' => 'yearly',
                'default' => 'no',
                'active' => true,
                'is_custom' => false,
                'is_popular' => false,
                'discount_type' => 'none',
                'discount_value' => 0,
                'position' => 4,
            ],
            [
                'name' => 'Team 500',
                'description' => 'Yearly plan for teams up to 500 employees',
                'base_price_yearly' => 179999,
                'base_price_monthly' => 0,
                'per_employee_price' => 0,
                'employee_limit' => 500,
                'billing_type' => 'yearly',
                'default' => 'no',
                'active' => true,
                'is_custom' => false,
                'is_popular' => false,
                'discount_type' => 'none',
                'discount_value' => 0,
                'position' => 5,
            ],
            [
                'name' => 'Custom / Private',
                'description' => 'Negotiated private package — contact sales or request offline',
                'base_price_yearly' => 0,
                'base_price_monthly' => 0,
                'per_employee_price' => 0,
                'employee_limit' => null,
                'billing_type' => 'yearly',
                'default' => 'no',
                'active' => true,
                'is_custom' => true,
                'is_popular' => false,
                'discount_type' => 'none',
                'discount_value' => 0,
                'position' => 6,
            ],
        ];

        foreach ($plans as $plan) {
            SubscriptionPlan::updateOrCreate(
                ['name' => $plan['name']],
                array_merge($plan, [
                    'modules' => [],
                    'currency_code' => 'INR',
                    'currency_symbol' => '₹',
                ])
            );
        }
    }
}
