diff --git a/README.md b/README.md index 0b35f82..8426ad3 100644 --- a/README.md +++ b/README.md @@ -16,9 +16,19 @@ Using the database driver for laravel notifications is great, but then you need 6. Open your App/Console/Kernel.php and in the scheduler define how often you would like the digest process to run. E.g. ```$schedule->command('digestif:pour')->hourly();``` Alternatively, setup your own cron process to run ```php artisan digestif:pour``` when you would like emails to be sent. 7. Sit back and let Digestif handle the rest 🥃 -## Customisation options +## Config options Using the vendor:publish method you have full control of both the notification that we use behind the scenes. You can find this in your App/Notifications folder and you're welcome to tweak this to something that works better for you. +For example: + +| Config Variable | Default | Description +|---|---|---| +| enabled | true (boolean) | Should Digestif run or not? | +| type | simple (string) | What variety of email should it send. Only one option at the moment | +| user_model | User::class | What model is used for users that should receive the digest email | +| notifications_user_id_column | notifiable_id (string) | What column on the notifications table stores the user_id | +| read_column | read_at | What column from the notifications table stores whether the notification has been read or not | + ## Roadmap - [x] ~~Simple digest email~~ @@ -26,3 +36,38 @@ Using the vendor:publish method you have full control of both the notification t - [ ] Unsubscribing from the digest email - [ ] Itemised digest emails as well as our simple counter version - [ ] User controls to set the frequency of their digests + + +## Upgrade Guide + +### To v0.20 from v0.10 + +Add the following to your digestif.php config file: + +``` + /* + |-------------------------------------------------------------------------- + | Notifications read column + |-------------------------------------------------------------------------- + | + | Please tell us what column stores the read toggle for notifications + | + */ + 'read_column' => 'read_at', +``` + +### To v0.10 from v0.0.2 + +Add the following to your digestif.php config file + +```composer log + /* + |-------------------------------------------------------------------------- + | Notifications table user ID column + |-------------------------------------------------------------------------- + | + | Please tell us what column stores the user_id used for notifications + | + */ + 'notifications_user_id_column' => 'notifiable_id', +``` \ No newline at end of file diff --git a/composer.json b/composer.json index 778891b..b215d9a 100644 --- a/composer.json +++ b/composer.json @@ -1,7 +1,7 @@ { "name": "codepotatoltd/digestif", "description": "A digest email for Laravel database notifications", - "version": "0.1.0", + "version": "0.2.0", "type": "library", "require": { "php": ">=7.4", diff --git a/src/Tasks/Digestable.php b/src/Tasks/Digestable.php index eca9403..e25ceb9 100644 --- a/src/Tasks/Digestable.php +++ b/src/Tasks/Digestable.php @@ -40,8 +40,9 @@ public function run() $user_column = \config('digestif.notifications_user_id_column', 'notifiable_id'); DB::table('notifications') - ->orderBy('id', 'asc') + ->orderBy('id') ->select('*') + ->where( \config('digestif.read_column'), '=', null) ->where('digested_at', '=', null) ->chunk(100, function ($notifications) use ($user_column) { diff --git a/src/config/digestif.php b/src/config/digestif.php index 22c7060..12b9675 100644 --- a/src/config/digestif.php +++ b/src/config/digestif.php @@ -44,4 +44,15 @@ */ 'notifications_user_id_column' => 'notifiable_id', + + /* + |-------------------------------------------------------------------------- + | Notifications read column + |-------------------------------------------------------------------------- + | + | Please tell us what column stores the read toggle for notifications + | + */ + 'read_column' => 'read_at', + ]; \ No newline at end of file