93 lines
2.4 KiB
Plaintext
93 lines
2.4 KiB
Plaintext
# SUGEROWANE PRODUKTY
|
|
CREATE TABLE IF NOT EXISTS suggested_product (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
name TEXT UNIQUE NOT NULL
|
|
);
|
|
|
|
# NOTATKI
|
|
ALTER TABLE item
|
|
ADD COLUMN note TEXT;
|
|
|
|
# NOWE FUNKCJE ADMINA
|
|
ALTER TABLE shopping_list ADD COLUMN is_archived BOOLEAN DEFAULT FALSE;
|
|
|
|
|
|
# FUNKCJA WYDATKOW
|
|
CREATE TABLE expense (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
list_id INTEGER,
|
|
amount FLOAT NOT NULL,
|
|
added_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
receipt_filename VARCHAR(255),
|
|
FOREIGN KEY(list_id) REFERENCES shopping_list(id)
|
|
);
|
|
|
|
# FUNKCJA UKRYCIA PUBLICZNIE LISTY
|
|
ALTER TABLE shopping_list ADD COLUMN is_public BOOLEAN NOT NULL DEFAULT 1;
|
|
|
|
# ilośc produktów
|
|
ALTER TABLE item ADD COLUMN quantity INTEGER DEFAULT 1;
|
|
|
|
# licznik najczesciej kupowanych reczy
|
|
ALTER TABLE suggested_product ADD COLUMN usage_count INTEGER DEFAULT 0;
|
|
|
|
# funkcja niekupione
|
|
ALTER TABLE item ADD COLUMN not_purchased_reason TEXT;
|
|
ALTER TABLE item ADD COLUMN not_purchased BOOLEAN DEFAULT 0;
|
|
|
|
# funkcja sortowania
|
|
ALTER TABLE item ADD COLUMN position INTEGER DEFAULT 0;
|
|
|
|
# migracja paragonów do nowej tabeli
|
|
CREATE TABLE receipt (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
list_id INTEGER NOT NULL,
|
|
filename TEXT NOT NULL,
|
|
uploaded_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
FOREIGN KEY (list_id) REFERENCES shopping_list(id)
|
|
);
|
|
|
|
ALTER TABLE receipt ADD COLUMN filesize INTEGER;
|
|
|
|
# unikanie identycznych plikow
|
|
ALTER TABLE receipt ADD COLUMN file_hash TEXT
|
|
|
|
########## kategorie
|
|
-- 1. Nowa tabela kategorii
|
|
CREATE TABLE category (
|
|
id SERIAL PRIMARY KEY, -- w SQLite: INTEGER PRIMARY KEY AUTOINCREMENT
|
|
name VARCHAR(100) NOT NULL UNIQUE
|
|
);
|
|
|
|
-- 2. Tabela łącząca elementy z kategoriami
|
|
CREATE TABLE item_category (
|
|
item_id INTEGER NOT NULL,
|
|
category_id INTEGER NOT NULL,
|
|
PRIMARY KEY (item_id, category_id),
|
|
FOREIGN KEY (item_id) REFERENCES item(id) ON DELETE CASCADE,
|
|
FOREIGN KEY (category_id) REFERENCES category(id) ON DELETE CASCADE
|
|
);
|
|
|
|
-- 3. Wstawienie kategorii początkowych
|
|
INSERT INTO category (name) VALUES
|
|
('Spożywcze'),
|
|
('Budowlane'),
|
|
('Zabawki'),
|
|
('Chemia'),
|
|
('Inne'),
|
|
('Elektronika'),
|
|
('Odzież i obuwie'),
|
|
('Artykuły biurowe'),
|
|
('Kosmetyki i higiena'),
|
|
('Motoryzacja'),
|
|
('Ogród i rośliny'),
|
|
('Zwierzęta'),
|
|
('Sprzęt sportowy'),
|
|
('Książki i prasa'),
|
|
('Narzędzia i majsterkowanie'),
|
|
('RTV / AGD'),
|
|
('Apteka i suplementy'),
|
|
('Artykuły dekoracyjne'),
|
|
('Gry i hobby'),
|
|
('Usługi');
|