@@ -425,9 +425,42 @@ async searchMemories(params: {
425
425
### PostgreSQL Schema
426
426
427
427
``` sql
428
- -- migrations/20240318103238_remote_schema.sql
429
428
CREATE EXTENSION IF NOT EXISTS vector;
430
429
430
+ CREATE TABLE IF NOT EXISTS accounts (
431
+ id UUID PRIMARY KEY ,
432
+ " createdAt" DEFAULT CURRENT_TIMESTAMP ,
433
+ " name" TEXT ,
434
+ " username" TEXT ,
435
+ " email" TEXT NOT NULL ,
436
+ " avatarUrl" TEXT ,
437
+ " details" JSONB DEFAULT ' {}' ::" jsonb" ,
438
+ " is_agent" BOOLEAN DEFAULT false NOT NULL ,
439
+ " location" TEXT ,
440
+ " profile_line" TEXT ,
441
+ " signed_tos" BOOLEAN DEFAULT false NOT NULL
442
+ );
443
+
444
+ ALTER TABLE ONLY accounts ADD CONSTRAINT users_email_key UNIQUE (email);
445
+
446
+ CREATE TABLE IF NOT EXISTS participants (
447
+ " id" UUID PRIMARY KEY ,
448
+ " createdAt" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP NOT NULL ,
449
+ " userId" UUID REFERENCES accounts(id),
450
+ " roomId" UUID REFERENCES rooms(id),
451
+ " userState" TEXT , -- For MUTED, NULL, or FOLLOWED states
452
+ " last_message_read" UUID
453
+ );
454
+
455
+ ALTER TABLE ONLY participants ADD CONSTRAINT participants_id_key UNIQUE (id);
456
+ ALTER TABLE ONLY participants ADD CONSTRAINT participants_roomId_fkey FOREIGN KEY (" roomId" ) REFERENCES rooms(id);
457
+ ALTER TABLE ONLY participants ADD CONSTRAINT participants_userId_fkey FOREIGN KEY (" userId" ) REFERENCES accounts(id);
458
+
459
+ CREATE TABLE rooms (
460
+ id UUID PRIMARY KEY ,
461
+ " createdAt" TIMESTAMP DEFAULT CURRENT_TIMESTAMP
462
+ );
463
+
431
464
CREATE TABLE memories (
432
465
id UUID PRIMARY KEY ,
433
466
type TEXT NOT NULL ,
@@ -440,6 +473,9 @@ CREATE TABLE memories (
440
473
" createdAt" TIMESTAMP NOT NULL
441
474
);
442
475
476
+ ALTER TABLE ONLY memories ADD CONSTRAINT memories_roomId_fkey FOREIGN KEY (" roomId" ) REFERENCES rooms(id);
477
+ ALTER TABLE ONLY memories ADD CONSTRAINT memories_userId_fkey FOREIGN KEY (" userId" ) REFERENCES accounts(id);
478
+
443
479
CREATE INDEX memory_embedding_idx ON
444
480
memories USING ivfflat (embedding vector_cosine_ops)
445
481
WITH (lists = 100 );
@@ -452,6 +488,11 @@ CREATE TABLE relationships (
452
488
" createdAt" TIMESTAMP DEFAULT CURRENT_TIMESTAMP
453
489
);
454
490
491
+ ALTER TABLE ONLY relationships ADD CONSTRAINT friendships_id_key UNIQUE (id);
492
+ ALTER TABLE ONLY relationships ADD CONSTRAINT relationships_userA_fkey FOREIGN KEY (" userA" ) REFERENCES accounts(id);
493
+ ALTER TABLE ONLY relationships ADD CONSTRAINT relationships_userB_fkey FOREIGN KEY (" userB" ) REFERENCES accounts(id);
494
+ ALTER TABLE ONLY relationships ADD CONSTRAINT relationships_userId_fkey FOREIGN KEY (" userId" ) REFERENCES accounts(id);
495
+
455
496
CREATE TABLE goals (
456
497
id UUID PRIMARY KEY ,
457
498
" roomId" UUID NOT NULL ,
0 commit comments