Lae/app/Observers/SubscriptionObserve.php
2023-02-28 19:31:05 +08:00

55 lines
1.5 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace App\Observers;
use App\Events\Users;
use App\Models\Subscription;
class SubscriptionObserve
{
public function creating(Subscription $subscription): void
{
// 如果没有设置 status就设置为 draft
if (! $subscription->status) {
$subscription->status = 'draft';
}
}
/**
* Handle the Subscription "created" event.
*/
public function created(Subscription $subscription): void
{
broadcast(new Users($subscription->user, 'subscription.created', $subscription));
}
public function updating(Subscription $subscription): void
{
// 如果 status 是 expired, expired_at 为空,就设置为当前时间
if ($subscription->status === 'expired' && ! $subscription->expired_at) {
$subscription->expired_at = now();
}
// 如果 expired_at 和 trial_ends_at 为空,就当作过期处理
if ($subscription->status !== 'draft' && ! $subscription->expired_at && ! $subscription->trial_ends_at) {
$subscription->status = 'expired';
}
}
/**
* Handle the Subscription "updated" event.
*/
public function updated(Subscription $subscription): void
{
broadcast(new Users($subscription->user, 'subscription.updated', $subscription));
}
/**
* Handle the Subscription "deleted" event.
*/
public function deleted(Subscription $subscription): void
{
broadcast(new Users($subscription->user, 'subscription.deleted', $subscription));
}
}