01-initial.sql 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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. type INT,
  10. dmuser TEXT,
  11. first_event_id TEXT,
  12. PRIMARY KEY (channel_id, receiver)
  13. );
  14. CREATE TABLE puppet (
  15. id TEXT PRIMARY KEY,
  16. display_name TEXT,
  17. avatar TEXT,
  18. avatar_url TEXT,
  19. enable_presence BOOLEAN NOT NULL DEFAULT true
  20. );
  21. CREATE TABLE user (
  22. mxid TEXT PRIMARY KEY,
  23. id TEXT UNIQUE,
  24. management_room TEXT,
  25. token TEXT
  26. );
  27. CREATE TABLE message (
  28. channel_id TEXT NOT NULL,
  29. receiver TEXT NOT NULL,
  30. discord_message_id TEXT NOT NULL,
  31. matrix_message_id TEXT NOT NULL UNIQUE,
  32. author_id TEXT NOT NULL,
  33. timestamp BIGINT NOT NULL,
  34. PRIMARY KEY(discord_message_id, channel_id, receiver),
  35. FOREIGN KEY(channel_id, receiver) REFERENCES portal(channel_id, receiver) ON DELETE CASCADE
  36. );
  37. CREATE TABLE reaction (
  38. channel_id TEXT NOT NULL,
  39. receiver TEXT NOT NULL,
  40. discord_message_id TEXT NOT NULL,
  41. matrix_event_id TEXT NOT NULL UNIQUE,
  42. author_id TEXT NOT NULL,
  43. matrix_name TEXT,
  44. matrix_url TEXT,
  45. discord_id TEXT,
  46. UNIQUE (discord_id, author_id, discord_message_id, channel_id, receiver),
  47. FOREIGN KEY(channel_id, receiver) REFERENCES portal(channel_id, receiver) ON DELETE CASCADE
  48. );
  49. CREATE TABLE mx_user_profile (
  50. room_id TEXT,
  51. user_id TEXT,
  52. membership TEXT NOT NULL,
  53. displayname TEXT,
  54. avatar_url TEXT,
  55. PRIMARY KEY (room_id, user_id)
  56. );
  57. CREATE TABLE mx_registrations (
  58. user_id TEXT PRIMARY KEY
  59. );
  60. CREATE TABLE mx_room_state (
  61. room_id TEXT PRIMARY KEY,
  62. power_levels TEXT
  63. );