~aleteoryx/muditaos

ref: dd26b295758539790019bc7ad27c68f6ec0a14e7 muditaos/image/user/db/contacts_001.sql -rw-r--r-- 2.2 KiB
dd26b295 — Dawid Wojtas [BH-1415] Front light intensity for pre-wake up and main alarm 3 years ago
                                                                                
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
-- Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
-- For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

CREATE TABLE IF NOT EXISTS contacts
(
    _id        INTEGER PRIMARY KEY,
    name_id    INTEGER,
    numbers_id TEXT NOT NULL,
    ring_id    INTEGER,
    address_id INTEGER,
    speeddial  TEXT NOT NULL,
    FOREIGN KEY (name_id) REFERENCES contact_name (_id),
    FOREIGN KEY (ring_id) REFERENCES contact_ringtones (_id)
);

CREATE TABLE IF NOT EXISTS contact_address
(
    _id        INTEGER PRIMARY KEY,
    contact_id INTEGER,
    address    TEXT NOT NULL,
    note       TEXT NOT NULL,
    mail       TEXT NOT NULL,
    FOREIGN KEY (contact_id) REFERENCES contacts (_id)
);

CREATE TABLE IF NOT EXISTS contact_groups
(
    _id  INTEGER PRIMARY KEY,
    name TEXT NOT NULL UNIQUE
);

CREATE TABLE IF NOT EXISTS contact_match_groups
(
    _id        INTEGER PRIMARY KEY,
    group_id   INTEGER,
    contact_id INTEGER,
    FOREIGN KEY (group_id) REFERENCES contact_groups (_id)
        ON DELETE CASCADE,
    FOREIGN KEY (contact_id) REFERENCES contacts (_id)
        ON DELETE CASCADE,
    CONSTRAINT unique_group_contact
        UNIQUE (group_id, contact_id)
);

CREATE TABLE IF NOT EXISTS contact_group_protected
(
    _id      INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
    group_id INTEGER NOT NULL UNIQUE
);

CREATE TABLE IF NOT EXISTS contact_name
(
    _id              INTEGER PRIMARY KEY,
    contact_id       INTEGER,
    name_primary     TEXT NOT NULL,
    name_alternative TEXT NOT NULL,
    FOREIGN KEY (contact_id) REFERENCES contacts (_id)
);

CREATE TABLE IF NOT EXISTS contact_number
(
    _id         INTEGER PRIMARY KEY,
    contact_id  INTEGER,
    number_user TEXT NOT NULL,
    number_e164 TEXT NOT NULL,
    type        INTEGER,
    FOREIGN KEY (contact_id) REFERENCES contacts (_id)
);

CREATE TABLE IF NOT EXISTS contact_ringtones
(
    _id        INTEGER PRIMARY KEY,
    contact_id INTEGER,
    asset_path TEXT NOT NULL,
    FOREIGN KEY (contact_id) REFERENCES contacts (_id) ON DELETE CASCADE
);

CREATE INDEX IF NOT EXISTS contact_match_group_index_on_group
    ON contact_match_groups (group_id);
CREATE INDEX IF NOT EXISTS contact_match_group_index_on_contact
    ON contact_match_groups (contact_id);