CREATE TABLE IF NOT EXISTS tenant_invites ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), tenant_id UUID NOT NULL REFERENCES tenants(id) ON DELETE CASCADE, email TEXT NOT NULL, role TEXT NOT NULL DEFAULT 'member' CHECK (role IN ('admin', 'member', 'viewer')), token TEXT NOT NULL UNIQUE, invited_by UUID NOT NULL REFERENCES users(id), expires_at TIMESTAMPTZ NOT NULL DEFAULT NOW() + INTERVAL '7 days', accepted_at TIMESTAMPTZ, created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() ); CREATE INDEX IF NOT EXISTS idx_tenant_invites_token ON tenant_invites(token); CREATE INDEX IF NOT EXISTS idx_tenant_invites_email ON tenant_invites(email);