# 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');