2021-03-08 15:18:14 +01:00
|
|
|
<?php
|
2021-03-09 07:06:03 +01:00
|
|
|
/**
|
|
|
|
* Invoice Ninja (https://invoiceninja.com).
|
|
|
|
*
|
|
|
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
|
|
|
*
|
2024-04-12 06:15:41 +02:00
|
|
|
* @copyright Copyright (c) 2024. Invoice Ninja LLC (https://invoiceninja.com)
|
2021-03-09 07:06:03 +01:00
|
|
|
*
|
2021-06-16 08:58:16 +02:00
|
|
|
* @license https://www.elastic.co/licensing/elastic-license
|
2021-03-09 07:06:03 +01:00
|
|
|
*/
|
2021-03-08 15:18:14 +01:00
|
|
|
|
|
|
|
namespace App\Factory;
|
|
|
|
|
2024-04-03 17:19:26 +02:00
|
|
|
use App\Livewire\BillingPortal\Purchase;
|
2021-03-25 11:55:59 +01:00
|
|
|
use App\Models\Subscription;
|
2024-04-03 17:19:26 +02:00
|
|
|
use App\Services\Subscription\StepService;
|
2021-03-08 15:18:14 +01:00
|
|
|
|
2021-03-25 11:55:59 +01:00
|
|
|
class SubscriptionFactory
|
2021-03-08 15:18:14 +01:00
|
|
|
{
|
2021-03-25 11:55:59 +01:00
|
|
|
public static function create(int $company_id, int $user_id): Subscription
|
2021-03-08 15:18:14 +01:00
|
|
|
{
|
2021-03-25 11:55:59 +01:00
|
|
|
$billing_subscription = new Subscription();
|
2021-03-09 07:06:03 +01:00
|
|
|
$billing_subscription->company_id = $company_id;
|
|
|
|
$billing_subscription->user_id = $user_id;
|
2024-04-03 17:19:26 +02:00
|
|
|
$billing_subscription->steps = collect(Purchase::defaultSteps())
|
2024-06-14 09:09:44 +02:00
|
|
|
->map(fn ($step) => StepService::mapClassNameToString($step))
|
2024-02-29 04:13:10 +01:00
|
|
|
->implode(',');
|
2021-03-08 15:18:14 +01:00
|
|
|
|
|
|
|
return $billing_subscription;
|
|
|
|
}
|
|
|
|
}
|