summaryrefslogtreecommitdiff
path: root/internal/server/api/migrations/20250109141122_members.sql
blob: 61fba61d5c3e66f50821d5576f4b2684b165d26a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
-- +goose Up
CREATE TABLE IF NOT EXISTS members (
  user_id INT NOT NULL REFERENCES users (id),
  network_id INT NOT NULL REFERENCES networks (id) ON DELETE CASCADE,
  joined_at TEXT NOT NULL DEFAULT current_timestamp,
  is_member BOOLEAN NOT NULL CHECK (is_member IN (false, true)) DEFAULT true,
  is_admin BOOLEAN NOT NULL CHECK (is_admin IN (false, true)) DEFAULT false,
  is_muted BOOLEAN NOT NULL CHECK (is_muted IN (false, true)) DEFAULT false,
  is_banned BOOLEAN NOT NULL CHECK (is_banned IN (false, true)) DEFAULT false,
  ban_reason TEXT, -- null ONLY if is_banned is false
  PRIMARY KEY (user_id, network_id)
);

-- +goose Down
DROP TABLE IF EXISTS members;