big features

This commit is contained in:
Mateusz Gruszczyński
2026-07-22 11:03:50 +02:00
parent 0d77624adc
commit 1be2023e36
30 changed files with 1077 additions and 77 deletions
+27
View File
@@ -0,0 +1,27 @@
CREATE TABLE users (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
nickname VARCHAR(80) NOT NULL UNIQUE,
nickname_key VARCHAR(80) NOT NULL UNIQUE,
email VARCHAR(320) NOT NULL,
email_key VARCHAR(320) NOT NULL UNIQUE,
password_hash TEXT NOT NULL,
created_at VARCHAR(64) NOT NULL DEFAULT (CURRENT_TIMESTAMP),
updated_at VARCHAR(64) NOT NULL DEFAULT (CURRENT_TIMESTAMP)
) ENGINE=InnoDB;
CREATE TABLE user_sessions (
token VARCHAR(128) PRIMARY KEY,
user_id BIGINT NOT NULL,
expires_at VARCHAR(64) NOT NULL,
created_at VARCHAR(64) NOT NULL DEFAULT (CURRENT_TIMESTAMP),
CONSTRAINT fk_user_sessions_user FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
INDEX idx_user_sessions_user (user_id)
) ENGINE=InnoDB;
CREATE TABLE password_reset_tokens (
token VARCHAR(128) PRIMARY KEY,
user_id BIGINT NOT NULL,
expires_at VARCHAR(64) NOT NULL,
used_at VARCHAR(64),
created_at VARCHAR(64) NOT NULL DEFAULT (CURRENT_TIMESTAMP),
CONSTRAINT fk_password_reset_user FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
INDEX idx_password_reset_user (user_id)
) ENGINE=InnoDB;
+25
View File
@@ -0,0 +1,25 @@
CREATE TABLE users (
id BIGSERIAL PRIMARY KEY,
nickname TEXT NOT NULL UNIQUE,
nickname_key TEXT NOT NULL UNIQUE,
email TEXT NOT NULL,
email_key TEXT NOT NULL UNIQUE,
password_hash TEXT NOT NULL,
created_at TEXT NOT NULL DEFAULT (CURRENT_TIMESTAMP::text),
updated_at TEXT NOT NULL DEFAULT (CURRENT_TIMESTAMP::text)
);
CREATE TABLE user_sessions (
token TEXT PRIMARY KEY,
user_id BIGINT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
expires_at TEXT NOT NULL,
created_at TEXT NOT NULL DEFAULT (CURRENT_TIMESTAMP::text)
);
CREATE INDEX idx_user_sessions_user ON user_sessions(user_id);
CREATE TABLE password_reset_tokens (
token TEXT PRIMARY KEY,
user_id BIGINT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
expires_at TEXT NOT NULL,
used_at TEXT,
created_at TEXT NOT NULL DEFAULT (CURRENT_TIMESTAMP::text)
);
CREATE INDEX idx_password_reset_user ON password_reset_tokens(user_id);
+25
View File
@@ -0,0 +1,25 @@
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nickname TEXT NOT NULL UNIQUE,
nickname_key TEXT NOT NULL UNIQUE,
email TEXT NOT NULL,
email_key TEXT NOT NULL UNIQUE,
password_hash TEXT NOT NULL,
created_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE user_sessions (
token TEXT PRIMARY KEY,
user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
expires_at TEXT NOT NULL,
created_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX idx_user_sessions_user ON user_sessions(user_id);
CREATE TABLE password_reset_tokens (
token TEXT PRIMARY KEY,
user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
expires_at TEXT NOT NULL,
used_at TEXT,
created_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX idx_password_reset_user ON password_reset_tokens(user_id);