CREATE TABLE IF NOT EXISTS notifications (
  id          uuid        PRIMARY KEY DEFAULT gen_random_uuid(),
  user_id     uuid        NOT NULL REFERENCES users (id) ON DELETE CASCADE,
  type        text        NOT NULL CHECK (type IN ('mention', 'dm', 'thread_reply', 'invite', 'system')),
  source_id   uuid,
  read        boolean     DEFAULT false,
  created_at  timestamptz DEFAULT now()
);
