01-initial.sql 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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 reaction (
  36. channel_id TEXT NOT NULL,
  37. receiver TEXT NOT NULL,
  38. discord_message_id TEXT NOT NULL,
  39. matrix_event_id TEXT NOT NULL UNIQUE,
  40. author_id TEXT NOT NULL,
  41. matrix_name TEXT,
  42. matrix_url TEXT,
  43. discord_id TEXT,
  44. UNIQUE (discord_id, author_id, discord_message_id, channel_id, receiver),
  45. FOREIGN KEY(channel_id, receiver) REFERENCES portal(channel_id, receiver) ON DELETE CASCADE
  46. );
  47. CREATE TABLE mx_user_profile (
  48. room_id TEXT,
  49. user_id TEXT,
  50. membership TEXT NOT NULL,
  51. displayname TEXT,
  52. avatar_url TEXT,
  53. PRIMARY KEY (room_id, user_id)
  54. );
  55. CREATE TABLE mx_registrations (
  56. user_id TEXT PRIMARY KEY
  57. );
  58. CREATE TABLE mx_room_state (
  59. room_id TEXT PRIMARY KEY,
  60. power_levels TEXT
  61. );