laravel-eloquent-flag icon indicating copy to clipboard operation
laravel-eloquent-flag copied to clipboard

Set future date for timestamp flags

Open antonkomarev opened this issue 8 years ago • 1 comments

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.

antonkomarev avatar Jan 14 '17 01:01 antonkomarev

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.

antonkomarev avatar Jan 14 '17 16:01 antonkomarev