00-latest-revision.sql 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. -- v0 -> v2: Latest revision
  2. CREATE TABLE portal (
  3. dcid TEXT,
  4. receiver TEXT,
  5. other_user_id TEXT,
  6. type INTEGER,
  7. mxid TEXT UNIQUE,
  8. name TEXT NOT NULL,
  9. topic TEXT NOT NULL,
  10. avatar TEXT NOT NULL,
  11. avatar_url TEXT NOT NULL,
  12. encrypted BOOLEAN NOT NULL DEFAULT false,
  13. first_event_id TEXT NOT NULL,
  14. PRIMARY KEY (dcid, receiver)
  15. );
  16. CREATE TABLE puppet (
  17. id TEXT PRIMARY KEY,
  18. name TEXT,
  19. avatar TEXT,
  20. avatar_url TEXT,
  21. custom_mxid TEXT,
  22. access_token TEXT,
  23. next_batch TEXT
  24. );
  25. CREATE TABLE "user" (
  26. mxid TEXT PRIMARY KEY,
  27. dcid TEXT UNIQUE,
  28. management_room TEXT,
  29. token TEXT
  30. );
  31. CREATE TABLE message (
  32. dcid TEXT,
  33. dc_chan_id TEXT,
  34. dc_chan_receiver TEXT,
  35. dc_sender TEXT NOT NULL,
  36. timestamp BIGINT NOT NULL,
  37. mxid TEXT NOT NULL UNIQUE,
  38. PRIMARY KEY (dcid, dc_chan_id, dc_chan_receiver),
  39. CONSTRAINT message_portal_fkey FOREIGN KEY (dc_chan_id, dc_chan_receiver) REFERENCES portal (dcid, receiver) ON DELETE CASCADE
  40. );
  41. CREATE TABLE reaction (
  42. dc_chan_id TEXT,
  43. dc_chan_receiver TEXT,
  44. dc_msg_id TEXT,
  45. dc_sender TEXT,
  46. dc_emoji_name TEXT,
  47. mxid TEXT NOT NULL UNIQUE,
  48. PRIMARY KEY (dc_chan_id, dc_chan_receiver, dc_msg_id, dc_sender, dc_emoji_name),
  49. CONSTRAINT reaction_message_fkey FOREIGN KEY (dc_msg_id, dc_chan_id, dc_chan_receiver) REFERENCES message (dcid, dc_chan_id, dc_chan_receiver) ON DELETE CASCADE
  50. );
  51. CREATE TABLE attachment (
  52. dcid TEXT,
  53. dc_msg_id TEXT,
  54. dc_chan_id TEXT,
  55. dc_chan_receiver TEXT,
  56. mxid TEXT NOT NULL UNIQUE,
  57. PRIMARY KEY (dcid, dc_msg_id, dc_chan_id, dc_chan_receiver),
  58. CONSTRAINT attachment_message_fkey FOREIGN KEY (dc_msg_id, dc_chan_id, dc_chan_receiver) REFERENCES message (dcid, dc_chan_id, dc_chan_receiver) ON DELETE CASCADE
  59. );
  60. CREATE TABLE emoji (
  61. discord_id TEXT PRIMARY KEY,
  62. discord_name TEXT,
  63. matrix_url TEXT
  64. );
  65. CREATE TABLE guild (
  66. discord_id TEXT NOT NULL,
  67. guild_id TEXT NOT NULL,
  68. guild_name TEXT NOT NULL,
  69. bridge BOOLEAN DEFAULT FALSE,
  70. PRIMARY KEY(discord_id, guild_id)
  71. );