Files
mtdb_movie/database/seeders/BillingPlanSeeder.php
maher 703f50a09d
Some checks failed
Build / run (push) Has been cancelled
first commit
2025-10-29 11:42:25 +01:00

112 lines
3.0 KiB
PHP
Executable File

<?php
namespace Database\Seeders;
use Common\Billing\BillingPlan;
use Common\Billing\Models\Product;
use Common\Billing\Products\Actions\CrupdateProduct;
use Illuminate\Database\Seeder;
class BillingPlanSeeder extends Seeder
{
protected array $sharedFeatures = [
'No advertisements',
'Watch on laptop, TV, phone and tablet',
'Unlimited movies and TV shows',
'Cancel anytime',
'First month free',
];
public function run(): void
{
if (!Product::count()) {
$this->basicPlan();
$this->standardPlan();
$this->proPlan();
}
}
protected function basicPlan(): void
{
app(CrupdateProduct::class)->execute([
'name' => 'Basic',
'amount' => 7.99,
'position' => 1,
'feature_list' => [
...$this->sharedFeatures,
'1 screen(s) at the same time',
],
'prices' => [
[
'amount' => 7.99,
'currency' => 'USD',
'interval' => 'month',
'interval_count' => 1,
],
[
'amount' => 76.70,
'currency' => 'USD',
'interval' => 'month',
'interval_count' => 12,
],
],
]);
}
protected function standardPlan(): void
{
app(CrupdateProduct::class)->execute([
'name' => 'Standard',
'position' => 2,
'recommended' => true,
'feature_list' => [
...$this->sharedFeatures,
'2 screen(s) at the same time',
'HD available',
],
'prices' => [
[
'amount' => 9.99,
'currency' => 'USD',
'interval' => 'month',
'interval_count' => 1,
],
[
'amount' => 95.90,
'currency' => 'USD',
'interval' => 'month',
'interval_count' => 12,
],
],
]);
}
protected function proPlan(): void
{
app(CrupdateProduct::class)->execute([
'name' => 'Pro',
'position' => 3,
'feature_list' => [
...$this->sharedFeatures,
'4 screen(s) at the same time',
'HD available',
'Ultra HD available',
],
'prices' => [
[
'amount' => 11.99,
'currency' => 'USD',
'interval' => 'month',
'interval_count' => 1,
],
[
'amount' => 115.10,
'currency' => 'USD',
'interval' => 'month',
'interval_count' => 12,
],
],
]);
}
}