You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on May 26, 2023. It is now read-only.
I'm unable to make the scope, because it would need very a specific mysql raw select with mysql date calculation methods. Since laravel installation accepts mysql, postgres and others I'm afraid i can't put it in the package.
I have not tested, but I think it would be something like:
/** * Scope subscriptions in grace period. * * @param \Illuminate\Database\Eloquent\Builder $builder * * @return \Illuminate\Database\Eloquent\Builder */publicfunctionscopeInGrace($query)
{
return$query->select(DB::raw('CASE grace_interval WHEN "hour" THEN date_add(ends_at, INTERVAL grace_period HOUR) WHEN "day" THEN date_add(ends_at, INTERVAL grace_period DAY) WHEN "week" THEN date_add(ends_at, INTERVAL grace_period WEEK) WHEN "month" THEN date_add(ends_at, INTERVAL grace_period MONTH) END AS grace_ends_at'))
->where('grace_period', '>', 0)
->where('grace_ends_at', '>=', Carbon::now());
}
Maybe we could have a separate column grace_ends_at just as there is trial_ends_at?
Then for the scope we would just need a check if now() is greater than ends_at and lower than grace_ends_at? Similarly isInGrace() would be very easy to calculate.
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
I thought that we could need
isInGrace()
method?And as well a scope
scopeFindInGracePeriod()
for getting the subscribers during the grace period ending in X days?The both methods would be very helpful for displaying appropriate information to the user in the front or to send them email reminders.
The text was updated successfully, but these errors were encountered: