21 lines
894 B
SQL
21 lines
894 B
SQL
-- Add note_share table for public note sharing functionality
|
|
CREATE TABLE IF NOT EXISTS note_share (
|
|
id SERIAL PRIMARY KEY,
|
|
note_id INTEGER NOT NULL REFERENCES note(id) ON DELETE CASCADE,
|
|
token VARCHAR(64) UNIQUE NOT NULL,
|
|
expires_at TIMESTAMP,
|
|
password_hash VARCHAR(255),
|
|
view_count INTEGER DEFAULT 0,
|
|
max_views INTEGER,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
created_by_id INTEGER NOT NULL REFERENCES "user"(id),
|
|
last_accessed_at TIMESTAMP
|
|
);
|
|
|
|
-- Create indexes for better performance
|
|
CREATE INDEX IF NOT EXISTS idx_note_share_token ON note_share(token);
|
|
CREATE INDEX IF NOT EXISTS idx_note_share_note_id ON note_share(note_id);
|
|
CREATE INDEX IF NOT EXISTS idx_note_share_created_by ON note_share(created_by_id);
|
|
|
|
-- Add comment
|
|
COMMENT ON TABLE note_share IS 'Public sharing links for notes with optional password protection and view limits'; |