aboutsummaryrefslogtreecommitdiff
path: root/lib/models/MassMail/MassMailFilter.php
blob: e67c3028c0affde1a340669723ca2a3ace7eac5f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php

namespace MassMail;

/**
 * @license GPL2 or any later version
 *
 * @property array $id alias for pk
 * @property int $message_id database column
 * @property string $filter_id database column
 * @property int $mkdate database column
 * @property-read mixed $userfilter additional field
 */
class MassMailFilter extends \SimpleORMap
{

    protected static function configure($config = [])
    {
        $config['db_table'] = 'massmail_filter';

        $config['additional_fields']['userfilter']['get'] = function ($entry) {
            return new \UserFilter($entry->filter_id);
        };
        $config['registered_callbacks']['before_delete'][] = 'cbDeleteUserFilter';
        $config['registered_callbacks']['after_store'][] = 'cbUpdateUserFilterRange';

        parent::configure($config);
    }

    public function cbDeleteUserFilter()
    {
        $filter = new \UserFilter($this->filter_id);
        $filter->delete();
    }

    public function cbUpdateUserFilterRange()
    {
        $filter = new \UserFilter($this->filter_id);
        $filter->setRange(MassMailMessage::class, $this->message_id);
        $filter->store();
    }

}