-- Включаем поддержку внешних ключей (в SQLite они по умолчанию выключены)
PRAGMA foreign_keys = ON;
-- Создание таблицы categories
CREATE TABLE IF NOT EXISTS categories (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL,
icon TEXT
);
-- Создание таблицы courses
CREATE TABLE IF NOT EXISTS courses (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL,
price REAL NOT NULL,
current_discount REAL DEFAULT 0,
is_available INTEGER DEFAULT 1, -- 1 = TRUE, 0 = FALSE
category_id INTEGER,
FOREIGN KEY (category_id) REFERENCES categories(id) ON DELETE SET NULL
);
-- Создание таблицы users
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
first_name TEXT NOT NULL,
last_name TEXT NOT NULL,
email TEXT NOT NULL UNIQUE,
password TEXT NOT NULL,
is_admin INTEGER DEFAULT 0,
is_premium INTEGER DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Создание таблицы receipts
CREATE TABLE IF NOT EXISTS receipts (
id INTEGER PRIMARY KEY AUTOINCREMENT,
receipt_url TEXT
);
-- Создание таблицы user_courses
CREATE TABLE IF NOT EXISTS user_courses (
user_id INTEGER NOT NULL,
course_id INTEGER NOT NULL,
receipt_id INTEGER,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (user_id, course_id),
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
FOREIGN KEY (course_id) REFERENCES courses(id) ON DELETE CASCADE,
FOREIGN KEY (receipt_id) REFERENCES receipts(id) ON DELETE SET NULL
);