*/ class PlanFactory extends Factory { private static array $defaultFeatures = [ 'fuel_types' => ['max' => 1], 'email' => ['enabled' => false, 'frequency' => 'weekly_digest'], 'push' => ['enabled' => false, 'frequency' => 'none'], 'whatsapp' => ['enabled' => false, 'daily_limit' => 0, 'scheduled_updates' => 0], 'sms' => ['enabled' => false, 'daily_limit' => 0], 'ai_predictions' => false, 'price_threshold' => false, 'score_alerts' => false, ]; public function definition(): array { return [ 'name' => PlanTier::Free->value, 'stripe_price_id' => null, 'features' => self::$defaultFeatures, 'active' => true, ]; } public function free(): static { return $this->state(fn () => [ 'name' => PlanTier::Free->value, 'stripe_price_id' => null, 'features' => self::$defaultFeatures, ]); } public function basic(): static { return $this->state(fn () => [ 'name' => PlanTier::Basic->value, 'stripe_price_id' => 'price_basic_test', 'features' => [ 'fuel_types' => ['max' => 1], 'email' => ['enabled' => true, 'frequency' => 'daily'], 'push' => ['enabled' => true, 'frequency' => 'daily'], 'whatsapp' => ['enabled' => true, 'daily_limit' => 5, 'scheduled_updates' => 2], 'sms' => ['enabled' => false, 'daily_limit' => 0], 'ai_predictions' => false, 'price_threshold' => true, 'score_alerts' => true, ], ]); } public function plus(): static { return $this->state(fn () => [ 'name' => PlanTier::Plus->value, 'stripe_price_id' => 'price_plus_test', 'features' => [ 'fuel_types' => ['max' => 1], 'email' => ['enabled' => true, 'frequency' => 'triggered'], 'push' => ['enabled' => true, 'frequency' => 'triggered'], 'whatsapp' => ['enabled' => true, 'daily_limit' => 5, 'scheduled_updates' => 2], 'sms' => ['enabled' => true, 'daily_limit' => 1], 'ai_predictions' => true, 'price_threshold' => true, 'score_alerts' => true, ], ]); } public function pro(): static { return $this->state(fn () => [ 'name' => PlanTier::Pro->value, 'stripe_price_id' => 'price_pro_test', 'features' => [ 'fuel_types' => ['max' => null], 'email' => ['enabled' => true, 'frequency' => 'triggered'], 'push' => ['enabled' => true, 'frequency' => 'triggered'], 'whatsapp' => ['enabled' => true, 'daily_limit' => 5, 'scheduled_updates' => 2], 'sms' => ['enabled' => true, 'daily_limit' => 3], 'ai_predictions' => true, 'price_threshold' => true, 'score_alerts' => true, ], ]); } }