01-initial.sql 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. CREATE TABLE portal (
  2. channel_id TEXT,
  3. receiver TEXT,
  4. mxid TEXT UNIQUE,
  5. name TEXT NOT NULL,
  6. topic TEXT NOT NULL,
  7. avatar TEXT NOT NULL,
  8. avatar_url TEXT,
  9. first_event_id TEXT,
  10. PRIMARY KEY (channel_id, receiver)
  11. );
  12. CREATE TABLE puppet (
  13. id TEXT PRIMARY KEY,
  14. display_name TEXT,
  15. avatar TEXT,
  16. avatar_url TEXT,
  17. enable_presence BOOLEAN NOT NULL DEFAULT true
  18. );
  19. CREATE TABLE user (
  20. mxid TEXT PRIMARY KEY,
  21. id TEXT UNIQUE,
  22. management_room TEXT,
  23. token TEXT
  24. );
  25. CREATE TABLE message (
  26. channel_id TEXT NOT NULL,
  27. receiver TEXT NOT NULL,
  28. discord_message_id TEXT NOT NULL,
  29. matrix_message_id TEXT NOT NULL UNIQUE,
  30. author_id TEXT NOT NULL,
  31. timestamp BIGINT NOT NULL,
  32. PRIMARY KEY(discord_message_id, channel_id, receiver),
  33. FOREIGN KEY(channel_id, receiver) REFERENCES portal(channel_id, receiver) ON DELETE CASCADE
  34. );
  35. CREATE TABLE mx_user_profile (
  36. room_id TEXT,
  37. user_id TEXT,
  38. membership TEXT NOT NULL,
  39. displayname TEXT,
  40. avatar_url TEXT,
  41. PRIMARY KEY (room_id, user_id)
  42. );
  43. CREATE TABLE mx_registrations (
  44. user_id TEXT PRIMARY KEY
  45. );
  46. CREATE TABLE mx_room_state (
  47. room_id TEXT PRIMARY KEY,
  48. power_levels TEXT
  49. );