summaryrefslogtreecommitdiff
path: root/internal/server/api/migrations/20250109140401_messages.sql
blob: 92f75f41e8bd251ce5c04e452061aa007bc3fd32 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-- +goose Up
CREATE TABLE IF NOT EXISTS messages (
  id INTEGER PRIMARY KEY,
  sender_id INT NOT NULL REFERENCES users (id),
  content TEXT NOT NULL,
  edited BOOLEAN NOT NULL CHECK (edited IN (false, true)) DEFAULT false,

  frequency_id INT REFERENCES frequencies (id) ON DELETE CASCADE,
  receiver_id INT REFERENCES users (id),

  CHECK (
    (frequency_id IS NOT NULL AND receiver_id IS NULL) OR
    (frequency_id IS NULL AND receiver_id IS NOT NULL)
  )
);

-- +goose Down
DROP TABLE IF EXISTS messages;