veza/veza-backend-api/migrations/092_group_invitations.sql

15 lines
788 B
SQL

-- Migration 092: Group invitations (v0.302 Lot S2.2)
-- Admin/moderator can invite users to join a group
CREATE TABLE IF NOT EXISTS group_invitations (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
group_id UUID NOT NULL REFERENCES groups(id) ON DELETE CASCADE,
inviter_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
invitee_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
status VARCHAR(20) NOT NULL DEFAULT 'pending' CHECK (status IN ('pending', 'accepted', 'declined')),
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
UNIQUE(group_id, invitee_id)
);
CREATE INDEX IF NOT EXISTS idx_group_invitations_group_id ON group_invitations(group_id);
CREATE INDEX IF NOT EXISTS idx_group_invitations_invitee_id ON group_invitations(invitee_id);