Files
lista_zakupowa_live/alters.txt
Mateusz Gruszczyński 978bcbe051 kategorie list i wykresy
2025-07-30 23:20:03 +02:00

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