Files
portal/app/database/factories/PricingTierFactory.php
T
Дмитрий 71e38ee0a9 feat(models): add PricingTier model with kopecks→rubles accessor + current() snapshot
- app/Models/PricingTier.php — fillable + casts (date, boolean, integer)
  + accessor priceRubles (kopecks → float rubles)
  + scopeActive (is_active=true AND effective_from <= today)
  + static current() — keyed by tier_no Collection<int, PricingTier>
- database/factories/PricingTierFactory.php — реалистичные ступени (300/700/1000/.../null)
- tests/Feature/Models/PricingTierTest.php — 4 теста: factory, accessor,
  scopeActive, current() snapshot всех 7 ступеней

ide-helper:models -W -M -N перегенерил docblocks (WebhookDedupKey synced
после schema v8.16).

Pest: 455 / 453 passed / 2 skipped (449 + 4 новых = 453).
Larastan: 0 errors. Pint auto-fix.

Spec: §7.2
Plan: Task 7

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 16:48:00 +03:00

28 lines
669 B
PHP

<?php
declare(strict_types=1);
namespace Database\Factories;
use App\Models\PricingTier;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
* @extends Factory<PricingTier>
*/
class PricingTierFactory extends Factory
{
protected $model = PricingTier::class;
public function definition(): array
{
return [
'tier_no' => fake()->numberBetween(1, 7),
'leads_in_tier' => fake()->randomElement([300, 700, 1000, 2000, 5000, 10000, null]),
'price_per_lead_kopecks' => fake()->numberBetween(2000, 7000),
'is_active' => true,
'effective_from' => now()->toDateString(),
];
}
}