laravel-eloquent-flag
laravel-eloquent-flag copied to clipboard
Set future date for timestamp flags
This could be useful for example when you want an article to be automatically shown in future date.
Right now if future published_at
will be setted - this record will be published immediately. Global scopes and helpers should check not for the null value, but for the exact date is past.
This use case will be useful for all timestamp flags. For example expired_at
flag will be useful for subscriptions and so on.
The main issues are:
More complex queries
Checks for dates instead of NULL
values.
Before:
$builder->whereNotNull('accepted_at');
After:
return $builder->where('accepted_at', '<=', Carbon::now());
Not all applications or models need such functionality
This could be solved by adding additional methods to check if this functionality is required. Each flag should has +1 method.
Scopes naming
For the flag AcceptedAt
there are methods like: withRejected
, onlyRejected
. Should this methods include record which will be accepted in future? Technically it isn't accepted yet because of future timestamp. But logically it's not rejected already.