-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdatabase.sql
More file actions
74 lines (66 loc) · 2.68 KB
/
Copy pathdatabase.sql
File metadata and controls
74 lines (66 loc) · 2.68 KB
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
--
-- Arquivo gerado com SQLiteStudio v3.4.4 em ter jul 2 10:09:47 2024
--
-- Codificação de texto usada: System
--
PRAGMA foreign_keys = off;
BEGIN TRANSACTION;
-- Tabela: carrinho
CREATE TABLE IF NOT EXISTS carrinho (id integer PRIMARY KEY AUTOINCREMENT, id_usuario integer NOT NULL, preco real NOT NULL, qtd INTEGER, data datetime, data_update datetime, finalizado boolean NOT NULL, forma_pagamento TEXT);
-- Tabela: itens_carrinho
CREATE TABLE IF NOT EXISTS itens_carrinho (id integer PRIMARY KEY AUTOINCREMENT, id_carrinho integer NOT NULL, id_produto text NOT NULL, qtd integer NOT NULL, valor_unitario real NOT NULL, valor_total real NOT NULL);
-- Tabela: produtos
CREATE TABLE IF NOT EXISTS produtos (id integer PRIMARY KEY, nome text NOT NULL UNIQUE, qtd integer NOT NULL, valor real NOT NULL);
-- Tabela: usuario
CREATE TABLE IF NOT EXISTS usuario (id integer PRIMARY KEY AUTOINCREMENT, nome text NOT NULL, email text NOT NULL UNIQUE, senha text NOT NULL, admin boolean NOT NULL);
-- Trigger: delete_produtos_carrinho
CREATE TRIGGER IF NOT EXISTS delete_produtos_carrinho AFTER DELETE ON itens_carrinho BEGIN UPDATE carrinho
SET preco = preco - OLD.valor_total,
qtd = qtd - 1
WHERE id = OLD.id_carrinho;
UPDATE produtos
SET qtd = qtd + OLD.qtd
WHERE id = OLD.id_produto;
DELETE FROM carrinho WHERE qtd = 0; END;
-- Trigger: insert_produtos_carrinho
CREATE TRIGGER IF NOT EXISTS insert_produtos_carrinho AFTER INSERT ON itens_carrinho BEGIN UPDATE carrinho
SET preco = preco + NEW.valor_total,
qtd = qtd + 1,
data_update = datetime('now')
WHERE id = NEW.id_carrinho;
UPDATE produtos
SET qtd = qtd - NEW.qtd
WHERE id = NEW.id_produto; END;
-- Visualizar: transacoes
CREATE VIEW IF NOT EXISTS transacoes AS SELECT
c.id AS id_transacao,
u.id AS id_usuario,
u.nome AS nome_usuario,
c.preco AS valor_total_carrinho,
c.qtd AS quantidade_total_carrinho,
c.forma_pagamento AS forma_pagamento_carrinho,
strftime('%d', c.data) || '/' ||
strftime('%m', c.data) || '/' ||
strftime('%Y', c.data) || ' ' ||
strftime('%H', c.data) || ':' ||
strftime('%M', c.data) || ':' ||
strftime('%S', c.data) AS data_transacao,
GROUP_CONCAT(ic.id_produto, ',') AS id_produtos,
GROUP_CONCAT(p.nome, ',') AS produtos,
GROUP_CONCAT(ic.qtd, ',') AS qtd_produtos,
GROUP_CONCAT(ic.valor_unitario, ',') AS valor_unitario_produtos,
GROUP_CONCAT(ic.valor_total, ',') AS valor_total_produtos
FROM
carrinho c
JOIN
usuario u ON c.id_usuario = u.id
JOIN
itens_carrinho ic ON c.id = ic.id_carrinho
JOIN
produtos p ON ic.id_produto = p.id
WHERE
c.finalizado = 1
GROUP BY
c.id;
COMMIT TRANSACTION;
PRAGMA foreign_keys = on;