mirror of
https://github.com/dreamhunter2333/cloudflare_temp_email.git
synced 2026-05-06 20:32:55 +08:00
* feat: optimize email filtering with frontend-only search - Remove backend keyword parameter from mail APIs (breaking change) - Implement frontend filtering on current page (20-100 items) - Add message_id database index for UPDATE performance - Support desktop and mobile responsive layouts - Update API documentation and CHANGELOG BREAKING CHANGE: /admin/mails and /user_api/mails no longer accept keyword parameter 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * fix: restore Mail ID query input in Index.vue - Keep showMailIdQuery UI input for querying specific mail by ID - Triggered when URL contains mail_id parameter 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
118 lines
3.4 KiB
SQL
118 lines
3.4 KiB
SQL
CREATE TABLE IF NOT EXISTS raw_mails (
|
|
id INTEGER PRIMARY KEY,
|
|
message_id TEXT,
|
|
source TEXT,
|
|
address TEXT,
|
|
raw TEXT,
|
|
metadata TEXT,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_raw_mails_address ON raw_mails(address);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_raw_mails_created_at ON raw_mails(created_at);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_raw_mails_message_id ON raw_mails(message_id);
|
|
|
|
CREATE TABLE IF NOT EXISTS address (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
name TEXT UNIQUE,
|
|
password TEXT,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_address_name ON address(name);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_address_created_at ON address(created_at);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_address_updated_at ON address(updated_at);
|
|
|
|
CREATE TABLE IF NOT EXISTS auto_reply_mails (
|
|
id INTEGER PRIMARY KEY,
|
|
source_prefix TEXT,
|
|
name TEXT,
|
|
address TEXT UNIQUE,
|
|
subject TEXT,
|
|
message TEXT,
|
|
enabled INTEGER DEFAULT 1,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_auto_reply_mails_address ON auto_reply_mails(address);
|
|
|
|
CREATE TABLE IF NOT EXISTS address_sender (
|
|
id INTEGER PRIMARY KEY,
|
|
address TEXT UNIQUE,
|
|
balance INTEGER DEFAULT 0,
|
|
enabled INTEGER DEFAULT 1,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_address_sender_address ON address_sender(address);
|
|
|
|
CREATE TABLE IF NOT EXISTS sendbox (
|
|
id INTEGER PRIMARY KEY,
|
|
address TEXT,
|
|
raw TEXT,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_sendbox_address ON sendbox(address);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_sendbox_created_at ON sendbox(created_at);
|
|
|
|
CREATE TABLE IF NOT EXISTS settings (
|
|
key TEXT PRIMARY KEY,
|
|
value TEXT,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS users (
|
|
id INTEGER PRIMARY KEY,
|
|
user_email TEXT UNIQUE NOT NULL,
|
|
password TEXT NOT NULL,
|
|
user_info TEXT,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_users_user_email ON users(user_email);
|
|
|
|
CREATE TABLE IF NOT EXISTS users_address (
|
|
id INTEGER PRIMARY KEY,
|
|
user_id INTEGER,
|
|
address_id INTEGER UNIQUE,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_users_address_user_id ON users_address(user_id);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_users_address_address_id ON users_address(address_id);
|
|
|
|
CREATE TABLE IF NOT EXISTS user_roles (
|
|
id INTEGER PRIMARY KEY,
|
|
user_id INTEGER UNIQUE NOT NULL,
|
|
role_text TEXT,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_user_roles_user_id ON user_roles(user_id);
|
|
|
|
CREATE TABLE IF NOT EXISTS user_passkeys (
|
|
id INTEGER PRIMARY KEY,
|
|
user_id INTEGER NOT NULL,
|
|
passkey_name TEXT NOT NULL,
|
|
passkey_id TEXT NOT NULL,
|
|
passkey TEXT NOT NULL,
|
|
counter INTEGER DEFAULT 0,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_user_passkeys_user_id ON user_passkeys(user_id);
|
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS idx_user_passkeys_user_id_passkey_id ON user_passkeys(user_id, passkey_id);
|