16 lines
844 B
SQL
16 lines
844 B
SQL
-- Migration 089: Group join requests (private groups - request to join)
|
|
-- v0.302 Lot S2.1
|
|
|
|
CREATE TABLE IF NOT EXISTS group_join_requests (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
group_id UUID NOT NULL REFERENCES groups(id) ON DELETE CASCADE,
|
|
user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
status VARCHAR(20) NOT NULL DEFAULT 'pending' CHECK (status IN ('pending', 'approved', 'rejected')),
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
UNIQUE(group_id, user_id)
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_group_join_requests_group_id ON group_join_requests(group_id);
|
|
CREATE INDEX IF NOT EXISTS idx_group_join_requests_user_id ON group_join_requests(user_id);
|
|
CREATE INDEX IF NOT EXISTS idx_group_join_requests_status ON group_join_requests(status);
|