mirror of
https://git.sr.ht/~roxwize/mipilin
synced 2025-01-31 02:53:36 +00:00
uhhh yeah
Signed-off-by: roxwize <rae@roxwize.xyz>
This commit is contained in:
parent
5abe0b5fad
commit
afc634b0d2
43 changed files with 573 additions and 3792 deletions
4
.TODO
Normal file
4
.TODO
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
[ ] An audit log
|
||||||
|
[ ] Invite code pruning
|
||||||
|
[ ] Make the journal work (i dont really remember what was left out though)
|
||||||
|
[ ] Write a 404 page
|
|
@ -1,4 +1,4 @@
|
||||||
# MiPilin
|
# mipilin
|
||||||
This website lets you check on how your friends are doing, which is a very good and noble thing and something you should feel proud of yourself for even considering. Also you can let YOUR friends know how YOU'RE doing. I guess.
|
This website lets you check on how your friends are doing, which is a very good and noble thing and something you should feel proud of yourself for even considering. Also you can let YOUR friends know how YOU'RE doing. I guess.
|
||||||
|
|
||||||
MiPilin **MiPilin**
|
mipilin **mipilin**
|
||||||
|
|
3
TODO.md
3
TODO.md
|
@ -1,3 +0,0 @@
|
||||||
- [ ] An audit log
|
|
||||||
- [ ] Actual invite code pruning
|
|
||||||
- [ ] Make the journal work (i dont really remember what was left out though)
|
|
|
@ -13,8 +13,7 @@ export const users = pgTable("users", {
|
||||||
name: varchar({ length: 26 }).unique().notNull(),
|
name: varchar({ length: 26 }).unique().notNull(),
|
||||||
pass: varchar({ length: 255 }).notNull(),
|
pass: varchar({ length: 255 }).notNull(),
|
||||||
registered: timestamp().notNull(),
|
registered: timestamp().notNull(),
|
||||||
moderator: boolean().default(false).notNull(),
|
status: integer().default(0).notNull() // 000 |> verified / banned / moderator
|
||||||
banned: boolean().default(false).notNull() //! Not actually functional, banned users can still login
|
|
||||||
});
|
});
|
||||||
|
|
||||||
export const updates = pgTable("updates", {
|
export const updates = pgTable("updates", {
|
||||||
|
@ -69,5 +68,5 @@ export const inviteCodes = pgTable("invite_codes", {
|
||||||
user: integer("user_id").references(() => users.id, { onDelete: "cascade" }),
|
user: integer("user_id").references(() => users.id, { onDelete: "cascade" }),
|
||||||
granted: timestamp().notNull(),
|
granted: timestamp().notNull(),
|
||||||
expires: timestamp().default(new Date(0)),
|
expires: timestamp().default(new Date(0)),
|
||||||
confersModerator: boolean("confers_moderator").default(false)
|
confers: integer().default(0)
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,34 +0,0 @@
|
||||||
CREATE TABLE IF NOT EXISTS "updates" (
|
|
||||||
"id" integer PRIMARY KEY GENERATED ALWAYS AS IDENTITY (sequence name "updates_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START WITH 1 CACHE 1),
|
|
||||||
"user" integer NOT NULL,
|
|
||||||
"mood" integer DEFAULT 0,
|
|
||||||
"description" varchar(2048)
|
|
||||||
);
|
|
||||||
--> statement-breakpoint
|
|
||||||
CREATE TABLE IF NOT EXISTS "users" (
|
|
||||||
"id" integer PRIMARY KEY GENERATED ALWAYS AS IDENTITY (sequence name "users_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START WITH 1 CACHE 1),
|
|
||||||
"name" varchar(26) NOT NULL,
|
|
||||||
"pass" varchar(255) NOT NULL,
|
|
||||||
"registered" timestamp NOT NULL,
|
|
||||||
"bio" varchar(2048) DEFAULT '',
|
|
||||||
"moderator" boolean DEFAULT false,
|
|
||||||
"banned" boolean DEFAULT false,
|
|
||||||
CONSTRAINT "users_name_unique" UNIQUE("name")
|
|
||||||
);
|
|
||||||
--> statement-breakpoint
|
|
||||||
DO $$ BEGIN
|
|
||||||
ALTER TABLE "updates" ADD CONSTRAINT "updates_user_users_id_fk" FOREIGN KEY ("user") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
EXCEPTION
|
|
||||||
WHEN duplicate_object THEN null;
|
|
||||||
END $$;
|
|
||||||
|
|
||||||
CREATE TABLE "session" (
|
|
||||||
"sid" varchar NOT NULL COLLATE "default",
|
|
||||||
"sess" json NOT NULL,
|
|
||||||
"expire" timestamp(6) NOT NULL
|
|
||||||
)
|
|
||||||
WITH (OIDS=FALSE);
|
|
||||||
|
|
||||||
ALTER TABLE "session" ADD CONSTRAINT "session_pkey" PRIMARY KEY ("sid") NOT DEFERRABLE INITIALLY IMMEDIATE;
|
|
||||||
|
|
||||||
CREATE INDEX "IDX_session_expire" ON "session" ("expire");
|
|
95
drizzle/0000_hard_leader.sql
Normal file
95
drizzle/0000_hard_leader.sql
Normal file
|
@ -0,0 +1,95 @@
|
||||||
|
CREATE TABLE IF NOT EXISTS "follows" (
|
||||||
|
"user_id" integer,
|
||||||
|
"follower_id" integer,
|
||||||
|
CONSTRAINT "follows_user_id_follower_id_pk" PRIMARY KEY("user_id","follower_id")
|
||||||
|
);
|
||||||
|
--> statement-breakpoint
|
||||||
|
CREATE TABLE IF NOT EXISTS "invite_codes" (
|
||||||
|
"token" varchar(22) PRIMARY KEY NOT NULL,
|
||||||
|
"user_id" integer,
|
||||||
|
"granted" timestamp NOT NULL,
|
||||||
|
"expires" timestamp DEFAULT '1970-01-01 00:00:00.000',
|
||||||
|
"confers" integer DEFAULT 0
|
||||||
|
);
|
||||||
|
--> statement-breakpoint
|
||||||
|
CREATE TABLE IF NOT EXISTS "journal_entries" (
|
||||||
|
"id" integer PRIMARY KEY GENERATED ALWAYS AS IDENTITY (sequence name "journal_entries_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START WITH 1 CACHE 1),
|
||||||
|
"user" integer NOT NULL,
|
||||||
|
"mood-change" integer DEFAULT 0 NOT NULL,
|
||||||
|
"entry" varchar(4096) DEFAULT '' NOT NULL,
|
||||||
|
"visibility" integer DEFAULT 1 NOT NULL,
|
||||||
|
"date" timestamp NOT NULL
|
||||||
|
);
|
||||||
|
--> statement-breakpoint
|
||||||
|
CREATE TABLE IF NOT EXISTS "profiles" (
|
||||||
|
"user" integer PRIMARY KEY NOT NULL,
|
||||||
|
"bio" varchar(1024) DEFAULT '' NOT NULL,
|
||||||
|
"website" varchar DEFAULT '' NOT NULL
|
||||||
|
);
|
||||||
|
--> statement-breakpoint
|
||||||
|
CREATE TABLE IF NOT EXISTS "updates" (
|
||||||
|
"id" integer PRIMARY KEY GENERATED ALWAYS AS IDENTITY (sequence name "updates_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START WITH 1 CACHE 1),
|
||||||
|
"user" integer NOT NULL,
|
||||||
|
"mood" integer DEFAULT 0 NOT NULL,
|
||||||
|
"description" varchar(512) DEFAULT '' NOT NULL,
|
||||||
|
"date" timestamp NOT NULL
|
||||||
|
);
|
||||||
|
--> statement-breakpoint
|
||||||
|
CREATE TABLE IF NOT EXISTS "users" (
|
||||||
|
"id" integer PRIMARY KEY GENERATED ALWAYS AS IDENTITY (sequence name "users_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START WITH 1 CACHE 1),
|
||||||
|
"email" varchar NOT NULL,
|
||||||
|
"name" varchar(26) NOT NULL,
|
||||||
|
"pass" varchar(255) NOT NULL,
|
||||||
|
"registered" timestamp NOT NULL,
|
||||||
|
"status" integer DEFAULT 0 NOT NULL,
|
||||||
|
CONSTRAINT "users_email_unique" UNIQUE("email"),
|
||||||
|
CONSTRAINT "users_name_unique" UNIQUE("name")
|
||||||
|
);
|
||||||
|
--> statement-breakpoint
|
||||||
|
DO $$ BEGIN
|
||||||
|
ALTER TABLE "follows" ADD CONSTRAINT "follows_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;
|
||||||
|
EXCEPTION
|
||||||
|
WHEN duplicate_object THEN null;
|
||||||
|
END $$;
|
||||||
|
--> statement-breakpoint
|
||||||
|
DO $$ BEGIN
|
||||||
|
ALTER TABLE "follows" ADD CONSTRAINT "follows_follower_id_users_id_fk" FOREIGN KEY ("follower_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;
|
||||||
|
EXCEPTION
|
||||||
|
WHEN duplicate_object THEN null;
|
||||||
|
END $$;
|
||||||
|
--> statement-breakpoint
|
||||||
|
DO $$ BEGIN
|
||||||
|
ALTER TABLE "invite_codes" ADD CONSTRAINT "invite_codes_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;
|
||||||
|
EXCEPTION
|
||||||
|
WHEN duplicate_object THEN null;
|
||||||
|
END $$;
|
||||||
|
--> statement-breakpoint
|
||||||
|
DO $$ BEGIN
|
||||||
|
ALTER TABLE "journal_entries" ADD CONSTRAINT "journal_entries_user_users_id_fk" FOREIGN KEY ("user") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;
|
||||||
|
EXCEPTION
|
||||||
|
WHEN duplicate_object THEN null;
|
||||||
|
END $$;
|
||||||
|
--> statement-breakpoint
|
||||||
|
DO $$ BEGIN
|
||||||
|
ALTER TABLE "profiles" ADD CONSTRAINT "profiles_user_users_id_fk" FOREIGN KEY ("user") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;
|
||||||
|
EXCEPTION
|
||||||
|
WHEN duplicate_object THEN null;
|
||||||
|
END $$;
|
||||||
|
--> statement-breakpoint
|
||||||
|
DO $$ BEGIN
|
||||||
|
ALTER TABLE "updates" ADD CONSTRAINT "updates_user_users_id_fk" FOREIGN KEY ("user") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;
|
||||||
|
EXCEPTION
|
||||||
|
WHEN duplicate_object THEN null;
|
||||||
|
END $$;
|
||||||
|
|
||||||
|
-- session
|
||||||
|
CREATE TABLE "session" (
|
||||||
|
"sid" varchar NOT NULL COLLATE "default",
|
||||||
|
"sess" json NOT NULL,
|
||||||
|
"expire" timestamp(6) NOT NULL
|
||||||
|
)
|
||||||
|
WITH (OIDS=FALSE);
|
||||||
|
|
||||||
|
ALTER TABLE "session" ADD CONSTRAINT "session_pkey" PRIMARY KEY ("sid") NOT DEFERRABLE INITIALLY IMMEDIATE;
|
||||||
|
|
||||||
|
CREATE INDEX "IDX_session_expire" ON "session" ("expire");
|
|
@ -1,14 +0,0 @@
|
||||||
CREATE TABLE IF NOT EXISTS "profiles" (
|
|
||||||
"user" integer PRIMARY KEY NOT NULL,
|
|
||||||
"bio" varchar(2048) DEFAULT ''
|
|
||||||
);
|
|
||||||
--> statement-breakpoint
|
|
||||||
ALTER TABLE "users" ADD COLUMN "email" varchar NOT NULL;--> statement-breakpoint
|
|
||||||
DO $$ BEGIN
|
|
||||||
ALTER TABLE "profiles" ADD CONSTRAINT "profiles_user_users_id_fk" FOREIGN KEY ("user") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
EXCEPTION
|
|
||||||
WHEN duplicate_object THEN null;
|
|
||||||
END $$;
|
|
||||||
--> statement-breakpoint
|
|
||||||
ALTER TABLE "users" DROP COLUMN IF EXISTS "bio";--> statement-breakpoint
|
|
||||||
ALTER TABLE "users" ADD CONSTRAINT "users_email_unique" UNIQUE("email");
|
|
|
@ -1,2 +0,0 @@
|
||||||
ALTER TABLE "profiles" ALTER COLUMN "bio" SET DATA TYPE varchar(1024);--> statement-breakpoint
|
|
||||||
ALTER TABLE "updates" ALTER COLUMN "description" SET DATA TYPE varchar(512);
|
|
|
@ -1,6 +0,0 @@
|
||||||
ALTER TABLE "profiles" ALTER COLUMN "bio" SET NOT NULL;--> statement-breakpoint
|
|
||||||
ALTER TABLE "updates" ALTER COLUMN "mood" SET NOT NULL;--> statement-breakpoint
|
|
||||||
ALTER TABLE "updates" ALTER COLUMN "description" SET DEFAULT '';--> statement-breakpoint
|
|
||||||
ALTER TABLE "updates" ALTER COLUMN "description" SET NOT NULL;--> statement-breakpoint
|
|
||||||
ALTER TABLE "users" ALTER COLUMN "moderator" SET NOT NULL;--> statement-breakpoint
|
|
||||||
ALTER TABLE "users" ALTER COLUMN "banned" SET NOT NULL;
|
|
|
@ -1 +0,0 @@
|
||||||
ALTER TABLE "updates" ADD COLUMN "date" timestamp NOT NULL;
|
|
|
@ -1,18 +0,0 @@
|
||||||
CREATE TABLE IF NOT EXISTS "follows" (
|
|
||||||
"user_id" integer,
|
|
||||||
"follower_id" integer,
|
|
||||||
CONSTRAINT "follows_user_id_follower_id_pk" PRIMARY KEY("user_id","follower_id")
|
|
||||||
);
|
|
||||||
--> statement-breakpoint
|
|
||||||
ALTER TABLE "profiles" ADD COLUMN "website" varchar DEFAULT '' NOT NULL;--> statement-breakpoint
|
|
||||||
DO $$ BEGIN
|
|
||||||
ALTER TABLE "follows" ADD CONSTRAINT "follows_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
EXCEPTION
|
|
||||||
WHEN duplicate_object THEN null;
|
|
||||||
END $$;
|
|
||||||
--> statement-breakpoint
|
|
||||||
DO $$ BEGIN
|
|
||||||
ALTER TABLE "follows" ADD CONSTRAINT "follows_follower_id_users_id_fk" FOREIGN KEY ("follower_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
EXCEPTION
|
|
||||||
WHEN duplicate_object THEN null;
|
|
||||||
END $$;
|
|
|
@ -1,14 +0,0 @@
|
||||||
CREATE TABLE IF NOT EXISTS "journal_entries" (
|
|
||||||
"id" integer PRIMARY KEY GENERATED ALWAYS AS IDENTITY (sequence name "journal_entries_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START WITH 1 CACHE 1),
|
|
||||||
"user" integer NOT NULL,
|
|
||||||
"mood-change" integer DEFAULT 0 NOT NULL,
|
|
||||||
"entry" varchar(4096) DEFAULT '' NOT NULL,
|
|
||||||
"visibility" integer DEFAULT 1 NOT NULL,
|
|
||||||
"date" timestamp NOT NULL
|
|
||||||
);
|
|
||||||
--> statement-breakpoint
|
|
||||||
DO $$ BEGIN
|
|
||||||
ALTER TABLE "journal_entries" ADD CONSTRAINT "journal_entries_user_users_id_fk" FOREIGN KEY ("user") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
EXCEPTION
|
|
||||||
WHEN duplicate_object THEN null;
|
|
||||||
END $$;
|
|
|
@ -1,12 +0,0 @@
|
||||||
CREATE TABLE IF NOT EXISTS "invite_codes" (
|
|
||||||
"token" varchar(8) PRIMARY KEY NOT NULL,
|
|
||||||
"user_id" integer,
|
|
||||||
"granted" timestamp NOT NULL,
|
|
||||||
"expires" timestamp DEFAULT '1970-01-01 00:00:00.000'
|
|
||||||
);
|
|
||||||
--> statement-breakpoint
|
|
||||||
DO $$ BEGIN
|
|
||||||
ALTER TABLE "invite_codes" ADD CONSTRAINT "invite_codes_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
EXCEPTION
|
|
||||||
WHEN duplicate_object THEN null;
|
|
||||||
END $$;
|
|
|
@ -1,2 +0,0 @@
|
||||||
ALTER TABLE "invite_codes" ALTER COLUMN "token" SET DATA TYPE varchar(20);--> statement-breakpoint
|
|
||||||
ALTER TABLE "invite_codes" ADD COLUMN "confersAdmin" boolean DEFAULT false;
|
|
|
@ -1 +0,0 @@
|
||||||
ALTER TABLE "invite_codes" RENAME COLUMN "confersAdmin" TO "confers_admin";
|
|
|
@ -1 +0,0 @@
|
||||||
ALTER TABLE "invite_codes" RENAME COLUMN "confers_admin" TO "confers_moderator";
|
|
|
@ -1 +0,0 @@
|
||||||
ALTER TABLE "invite_codes" ALTER COLUMN "token" SET DATA TYPE varchar(22);
|
|
|
@ -1,9 +1,252 @@
|
||||||
{
|
{
|
||||||
"id": "7a6c6c4b-2c0a-424e-bf1a-142ab30f959d",
|
"id": "05baee8f-73c9-4001-b69d-ba7c46dadf5c",
|
||||||
"prevId": "00000000-0000-0000-0000-000000000000",
|
"prevId": "00000000-0000-0000-0000-000000000000",
|
||||||
"version": "7",
|
"version": "7",
|
||||||
"dialect": "postgresql",
|
"dialect": "postgresql",
|
||||||
"tables": {
|
"tables": {
|
||||||
|
"public.follows": {
|
||||||
|
"name": "follows",
|
||||||
|
"schema": "",
|
||||||
|
"columns": {
|
||||||
|
"user_id": {
|
||||||
|
"name": "user_id",
|
||||||
|
"type": "integer",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"follower_id": {
|
||||||
|
"name": "follower_id",
|
||||||
|
"type": "integer",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"indexes": {},
|
||||||
|
"foreignKeys": {
|
||||||
|
"follows_user_id_users_id_fk": {
|
||||||
|
"name": "follows_user_id_users_id_fk",
|
||||||
|
"tableFrom": "follows",
|
||||||
|
"tableTo": "users",
|
||||||
|
"columnsFrom": [
|
||||||
|
"user_id"
|
||||||
|
],
|
||||||
|
"columnsTo": [
|
||||||
|
"id"
|
||||||
|
],
|
||||||
|
"onDelete": "cascade",
|
||||||
|
"onUpdate": "no action"
|
||||||
|
},
|
||||||
|
"follows_follower_id_users_id_fk": {
|
||||||
|
"name": "follows_follower_id_users_id_fk",
|
||||||
|
"tableFrom": "follows",
|
||||||
|
"tableTo": "users",
|
||||||
|
"columnsFrom": [
|
||||||
|
"follower_id"
|
||||||
|
],
|
||||||
|
"columnsTo": [
|
||||||
|
"id"
|
||||||
|
],
|
||||||
|
"onDelete": "cascade",
|
||||||
|
"onUpdate": "no action"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"compositePrimaryKeys": {
|
||||||
|
"follows_user_id_follower_id_pk": {
|
||||||
|
"name": "follows_user_id_follower_id_pk",
|
||||||
|
"columns": [
|
||||||
|
"user_id",
|
||||||
|
"follower_id"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"uniqueConstraints": {},
|
||||||
|
"policies": {},
|
||||||
|
"checkConstraints": {},
|
||||||
|
"isRLSEnabled": false
|
||||||
|
},
|
||||||
|
"public.invite_codes": {
|
||||||
|
"name": "invite_codes",
|
||||||
|
"schema": "",
|
||||||
|
"columns": {
|
||||||
|
"token": {
|
||||||
|
"name": "token",
|
||||||
|
"type": "varchar(22)",
|
||||||
|
"primaryKey": true,
|
||||||
|
"notNull": true
|
||||||
|
},
|
||||||
|
"user_id": {
|
||||||
|
"name": "user_id",
|
||||||
|
"type": "integer",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"granted": {
|
||||||
|
"name": "granted",
|
||||||
|
"type": "timestamp",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": true
|
||||||
|
},
|
||||||
|
"expires": {
|
||||||
|
"name": "expires",
|
||||||
|
"type": "timestamp",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false,
|
||||||
|
"default": "'1970-01-01 00:00:00.000'"
|
||||||
|
},
|
||||||
|
"confers": {
|
||||||
|
"name": "confers",
|
||||||
|
"type": "integer",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false,
|
||||||
|
"default": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"indexes": {},
|
||||||
|
"foreignKeys": {
|
||||||
|
"invite_codes_user_id_users_id_fk": {
|
||||||
|
"name": "invite_codes_user_id_users_id_fk",
|
||||||
|
"tableFrom": "invite_codes",
|
||||||
|
"tableTo": "users",
|
||||||
|
"columnsFrom": [
|
||||||
|
"user_id"
|
||||||
|
],
|
||||||
|
"columnsTo": [
|
||||||
|
"id"
|
||||||
|
],
|
||||||
|
"onDelete": "cascade",
|
||||||
|
"onUpdate": "no action"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"compositePrimaryKeys": {},
|
||||||
|
"uniqueConstraints": {},
|
||||||
|
"policies": {},
|
||||||
|
"checkConstraints": {},
|
||||||
|
"isRLSEnabled": false
|
||||||
|
},
|
||||||
|
"public.journal_entries": {
|
||||||
|
"name": "journal_entries",
|
||||||
|
"schema": "",
|
||||||
|
"columns": {
|
||||||
|
"id": {
|
||||||
|
"name": "id",
|
||||||
|
"type": "integer",
|
||||||
|
"primaryKey": true,
|
||||||
|
"notNull": true,
|
||||||
|
"identity": {
|
||||||
|
"type": "always",
|
||||||
|
"name": "journal_entries_id_seq",
|
||||||
|
"schema": "public",
|
||||||
|
"increment": "1",
|
||||||
|
"startWith": "1",
|
||||||
|
"minValue": "1",
|
||||||
|
"maxValue": "2147483647",
|
||||||
|
"cache": "1",
|
||||||
|
"cycle": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"user": {
|
||||||
|
"name": "user",
|
||||||
|
"type": "integer",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": true
|
||||||
|
},
|
||||||
|
"mood-change": {
|
||||||
|
"name": "mood-change",
|
||||||
|
"type": "integer",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": true,
|
||||||
|
"default": 0
|
||||||
|
},
|
||||||
|
"entry": {
|
||||||
|
"name": "entry",
|
||||||
|
"type": "varchar(4096)",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": true,
|
||||||
|
"default": "''"
|
||||||
|
},
|
||||||
|
"visibility": {
|
||||||
|
"name": "visibility",
|
||||||
|
"type": "integer",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": true,
|
||||||
|
"default": 1
|
||||||
|
},
|
||||||
|
"date": {
|
||||||
|
"name": "date",
|
||||||
|
"type": "timestamp",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"indexes": {},
|
||||||
|
"foreignKeys": {
|
||||||
|
"journal_entries_user_users_id_fk": {
|
||||||
|
"name": "journal_entries_user_users_id_fk",
|
||||||
|
"tableFrom": "journal_entries",
|
||||||
|
"tableTo": "users",
|
||||||
|
"columnsFrom": [
|
||||||
|
"user"
|
||||||
|
],
|
||||||
|
"columnsTo": [
|
||||||
|
"id"
|
||||||
|
],
|
||||||
|
"onDelete": "cascade",
|
||||||
|
"onUpdate": "no action"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"compositePrimaryKeys": {},
|
||||||
|
"uniqueConstraints": {},
|
||||||
|
"policies": {},
|
||||||
|
"checkConstraints": {},
|
||||||
|
"isRLSEnabled": false
|
||||||
|
},
|
||||||
|
"public.profiles": {
|
||||||
|
"name": "profiles",
|
||||||
|
"schema": "",
|
||||||
|
"columns": {
|
||||||
|
"user": {
|
||||||
|
"name": "user",
|
||||||
|
"type": "integer",
|
||||||
|
"primaryKey": true,
|
||||||
|
"notNull": true
|
||||||
|
},
|
||||||
|
"bio": {
|
||||||
|
"name": "bio",
|
||||||
|
"type": "varchar(1024)",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": true,
|
||||||
|
"default": "''"
|
||||||
|
},
|
||||||
|
"website": {
|
||||||
|
"name": "website",
|
||||||
|
"type": "varchar",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": true,
|
||||||
|
"default": "''"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"indexes": {},
|
||||||
|
"foreignKeys": {
|
||||||
|
"profiles_user_users_id_fk": {
|
||||||
|
"name": "profiles_user_users_id_fk",
|
||||||
|
"tableFrom": "profiles",
|
||||||
|
"tableTo": "users",
|
||||||
|
"columnsFrom": [
|
||||||
|
"user"
|
||||||
|
],
|
||||||
|
"columnsTo": [
|
||||||
|
"id"
|
||||||
|
],
|
||||||
|
"onDelete": "cascade",
|
||||||
|
"onUpdate": "no action"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"compositePrimaryKeys": {},
|
||||||
|
"uniqueConstraints": {},
|
||||||
|
"policies": {},
|
||||||
|
"checkConstraints": {},
|
||||||
|
"isRLSEnabled": false
|
||||||
|
},
|
||||||
"public.updates": {
|
"public.updates": {
|
||||||
"name": "updates",
|
"name": "updates",
|
||||||
"schema": "",
|
"schema": "",
|
||||||
|
@ -35,14 +278,21 @@
|
||||||
"name": "mood",
|
"name": "mood",
|
||||||
"type": "integer",
|
"type": "integer",
|
||||||
"primaryKey": false,
|
"primaryKey": false,
|
||||||
"notNull": false,
|
"notNull": true,
|
||||||
"default": 0
|
"default": 0
|
||||||
},
|
},
|
||||||
"description": {
|
"description": {
|
||||||
"name": "description",
|
"name": "description",
|
||||||
"type": "varchar(2048)",
|
"type": "varchar(512)",
|
||||||
"primaryKey": false,
|
"primaryKey": false,
|
||||||
"notNull": false
|
"notNull": true,
|
||||||
|
"default": "''"
|
||||||
|
},
|
||||||
|
"date": {
|
||||||
|
"name": "date",
|
||||||
|
"type": "timestamp",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"indexes": {},
|
"indexes": {},
|
||||||
|
@ -88,6 +338,12 @@
|
||||||
"cycle": false
|
"cycle": false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"email": {
|
||||||
|
"name": "email",
|
||||||
|
"type": "varchar",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": true
|
||||||
|
},
|
||||||
"name": {
|
"name": {
|
||||||
"name": "name",
|
"name": "name",
|
||||||
"type": "varchar(26)",
|
"type": "varchar(26)",
|
||||||
|
@ -106,32 +362,25 @@
|
||||||
"primaryKey": false,
|
"primaryKey": false,
|
||||||
"notNull": true
|
"notNull": true
|
||||||
},
|
},
|
||||||
"bio": {
|
"status": {
|
||||||
"name": "bio",
|
"name": "status",
|
||||||
"type": "varchar(2048)",
|
"type": "integer",
|
||||||
"primaryKey": false,
|
"primaryKey": false,
|
||||||
"notNull": false,
|
"notNull": true,
|
||||||
"default": "''"
|
"default": 0
|
||||||
},
|
|
||||||
"moderator": {
|
|
||||||
"name": "moderator",
|
|
||||||
"type": "boolean",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"banned": {
|
|
||||||
"name": "banned",
|
|
||||||
"type": "boolean",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"default": false
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"indexes": {},
|
"indexes": {},
|
||||||
"foreignKeys": {},
|
"foreignKeys": {},
|
||||||
"compositePrimaryKeys": {},
|
"compositePrimaryKeys": {},
|
||||||
"uniqueConstraints": {
|
"uniqueConstraints": {
|
||||||
|
"users_email_unique": {
|
||||||
|
"name": "users_email_unique",
|
||||||
|
"nullsNotDistinct": false,
|
||||||
|
"columns": [
|
||||||
|
"email"
|
||||||
|
]
|
||||||
|
},
|
||||||
"users_name_unique": {
|
"users_name_unique": {
|
||||||
"name": "users_name_unique",
|
"name": "users_name_unique",
|
||||||
"nullsNotDistinct": false,
|
"nullsNotDistinct": false,
|
||||||
|
|
|
@ -1,205 +0,0 @@
|
||||||
{
|
|
||||||
"id": "e5a39ed0-96c3-43cf-9478-d038f2bc8bed",
|
|
||||||
"prevId": "7a6c6c4b-2c0a-424e-bf1a-142ab30f959d",
|
|
||||||
"version": "7",
|
|
||||||
"dialect": "postgresql",
|
|
||||||
"tables": {
|
|
||||||
"public.profiles": {
|
|
||||||
"name": "profiles",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"user": {
|
|
||||||
"name": "user",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"bio": {
|
|
||||||
"name": "bio",
|
|
||||||
"type": "varchar(2048)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"default": "''"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"profiles_user_users_id_fk": {
|
|
||||||
"name": "profiles_user_users_id_fk",
|
|
||||||
"tableFrom": "profiles",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.updates": {
|
|
||||||
"name": "updates",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"identity": {
|
|
||||||
"type": "always",
|
|
||||||
"name": "updates_id_seq",
|
|
||||||
"schema": "public",
|
|
||||||
"increment": "1",
|
|
||||||
"startWith": "1",
|
|
||||||
"minValue": "1",
|
|
||||||
"maxValue": "2147483647",
|
|
||||||
"cache": "1",
|
|
||||||
"cycle": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"user": {
|
|
||||||
"name": "user",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"mood": {
|
|
||||||
"name": "mood",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"default": 0
|
|
||||||
},
|
|
||||||
"description": {
|
|
||||||
"name": "description",
|
|
||||||
"type": "varchar(2048)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"updates_user_users_id_fk": {
|
|
||||||
"name": "updates_user_users_id_fk",
|
|
||||||
"tableFrom": "updates",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.users": {
|
|
||||||
"name": "users",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"identity": {
|
|
||||||
"type": "always",
|
|
||||||
"name": "users_id_seq",
|
|
||||||
"schema": "public",
|
|
||||||
"increment": "1",
|
|
||||||
"startWith": "1",
|
|
||||||
"minValue": "1",
|
|
||||||
"maxValue": "2147483647",
|
|
||||||
"cache": "1",
|
|
||||||
"cycle": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"email": {
|
|
||||||
"name": "email",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"name": {
|
|
||||||
"name": "name",
|
|
||||||
"type": "varchar(26)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"pass": {
|
|
||||||
"name": "pass",
|
|
||||||
"type": "varchar(255)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"registered": {
|
|
||||||
"name": "registered",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"moderator": {
|
|
||||||
"name": "moderator",
|
|
||||||
"type": "boolean",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"banned": {
|
|
||||||
"name": "banned",
|
|
||||||
"type": "boolean",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"default": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {
|
|
||||||
"users_email_unique": {
|
|
||||||
"name": "users_email_unique",
|
|
||||||
"nullsNotDistinct": false,
|
|
||||||
"columns": [
|
|
||||||
"email"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"users_name_unique": {
|
|
||||||
"name": "users_name_unique",
|
|
||||||
"nullsNotDistinct": false,
|
|
||||||
"columns": [
|
|
||||||
"name"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"enums": {},
|
|
||||||
"schemas": {},
|
|
||||||
"sequences": {},
|
|
||||||
"roles": {},
|
|
||||||
"policies": {},
|
|
||||||
"views": {},
|
|
||||||
"_meta": {
|
|
||||||
"columns": {},
|
|
||||||
"schemas": {},
|
|
||||||
"tables": {}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,205 +0,0 @@
|
||||||
{
|
|
||||||
"id": "330409e0-4bc1-408b-bc9d-58f0e35d5ab4",
|
|
||||||
"prevId": "e5a39ed0-96c3-43cf-9478-d038f2bc8bed",
|
|
||||||
"version": "7",
|
|
||||||
"dialect": "postgresql",
|
|
||||||
"tables": {
|
|
||||||
"public.profiles": {
|
|
||||||
"name": "profiles",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"user": {
|
|
||||||
"name": "user",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"bio": {
|
|
||||||
"name": "bio",
|
|
||||||
"type": "varchar(1024)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"default": "''"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"profiles_user_users_id_fk": {
|
|
||||||
"name": "profiles_user_users_id_fk",
|
|
||||||
"tableFrom": "profiles",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.updates": {
|
|
||||||
"name": "updates",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"identity": {
|
|
||||||
"type": "always",
|
|
||||||
"name": "updates_id_seq",
|
|
||||||
"schema": "public",
|
|
||||||
"increment": "1",
|
|
||||||
"startWith": "1",
|
|
||||||
"minValue": "1",
|
|
||||||
"maxValue": "2147483647",
|
|
||||||
"cache": "1",
|
|
||||||
"cycle": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"user": {
|
|
||||||
"name": "user",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"mood": {
|
|
||||||
"name": "mood",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"default": 0
|
|
||||||
},
|
|
||||||
"description": {
|
|
||||||
"name": "description",
|
|
||||||
"type": "varchar(512)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"updates_user_users_id_fk": {
|
|
||||||
"name": "updates_user_users_id_fk",
|
|
||||||
"tableFrom": "updates",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.users": {
|
|
||||||
"name": "users",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"identity": {
|
|
||||||
"type": "always",
|
|
||||||
"name": "users_id_seq",
|
|
||||||
"schema": "public",
|
|
||||||
"increment": "1",
|
|
||||||
"startWith": "1",
|
|
||||||
"minValue": "1",
|
|
||||||
"maxValue": "2147483647",
|
|
||||||
"cache": "1",
|
|
||||||
"cycle": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"email": {
|
|
||||||
"name": "email",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"name": {
|
|
||||||
"name": "name",
|
|
||||||
"type": "varchar(26)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"pass": {
|
|
||||||
"name": "pass",
|
|
||||||
"type": "varchar(255)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"registered": {
|
|
||||||
"name": "registered",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"moderator": {
|
|
||||||
"name": "moderator",
|
|
||||||
"type": "boolean",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"banned": {
|
|
||||||
"name": "banned",
|
|
||||||
"type": "boolean",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"default": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {
|
|
||||||
"users_email_unique": {
|
|
||||||
"name": "users_email_unique",
|
|
||||||
"nullsNotDistinct": false,
|
|
||||||
"columns": [
|
|
||||||
"email"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"users_name_unique": {
|
|
||||||
"name": "users_name_unique",
|
|
||||||
"nullsNotDistinct": false,
|
|
||||||
"columns": [
|
|
||||||
"name"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"enums": {},
|
|
||||||
"schemas": {},
|
|
||||||
"sequences": {},
|
|
||||||
"roles": {},
|
|
||||||
"policies": {},
|
|
||||||
"views": {},
|
|
||||||
"_meta": {
|
|
||||||
"columns": {},
|
|
||||||
"schemas": {},
|
|
||||||
"tables": {}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,206 +0,0 @@
|
||||||
{
|
|
||||||
"id": "76340b3d-907a-4a46-a13e-dff2c4bd98d4",
|
|
||||||
"prevId": "330409e0-4bc1-408b-bc9d-58f0e35d5ab4",
|
|
||||||
"version": "7",
|
|
||||||
"dialect": "postgresql",
|
|
||||||
"tables": {
|
|
||||||
"public.profiles": {
|
|
||||||
"name": "profiles",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"user": {
|
|
||||||
"name": "user",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"bio": {
|
|
||||||
"name": "bio",
|
|
||||||
"type": "varchar(1024)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "''"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"profiles_user_users_id_fk": {
|
|
||||||
"name": "profiles_user_users_id_fk",
|
|
||||||
"tableFrom": "profiles",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.updates": {
|
|
||||||
"name": "updates",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"identity": {
|
|
||||||
"type": "always",
|
|
||||||
"name": "updates_id_seq",
|
|
||||||
"schema": "public",
|
|
||||||
"increment": "1",
|
|
||||||
"startWith": "1",
|
|
||||||
"minValue": "1",
|
|
||||||
"maxValue": "2147483647",
|
|
||||||
"cache": "1",
|
|
||||||
"cycle": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"user": {
|
|
||||||
"name": "user",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"mood": {
|
|
||||||
"name": "mood",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": 0
|
|
||||||
},
|
|
||||||
"description": {
|
|
||||||
"name": "description",
|
|
||||||
"type": "varchar(512)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "''"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"updates_user_users_id_fk": {
|
|
||||||
"name": "updates_user_users_id_fk",
|
|
||||||
"tableFrom": "updates",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.users": {
|
|
||||||
"name": "users",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"identity": {
|
|
||||||
"type": "always",
|
|
||||||
"name": "users_id_seq",
|
|
||||||
"schema": "public",
|
|
||||||
"increment": "1",
|
|
||||||
"startWith": "1",
|
|
||||||
"minValue": "1",
|
|
||||||
"maxValue": "2147483647",
|
|
||||||
"cache": "1",
|
|
||||||
"cycle": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"email": {
|
|
||||||
"name": "email",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"name": {
|
|
||||||
"name": "name",
|
|
||||||
"type": "varchar(26)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"pass": {
|
|
||||||
"name": "pass",
|
|
||||||
"type": "varchar(255)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"registered": {
|
|
||||||
"name": "registered",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"moderator": {
|
|
||||||
"name": "moderator",
|
|
||||||
"type": "boolean",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"banned": {
|
|
||||||
"name": "banned",
|
|
||||||
"type": "boolean",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {
|
|
||||||
"users_email_unique": {
|
|
||||||
"name": "users_email_unique",
|
|
||||||
"nullsNotDistinct": false,
|
|
||||||
"columns": [
|
|
||||||
"email"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"users_name_unique": {
|
|
||||||
"name": "users_name_unique",
|
|
||||||
"nullsNotDistinct": false,
|
|
||||||
"columns": [
|
|
||||||
"name"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"enums": {},
|
|
||||||
"schemas": {},
|
|
||||||
"sequences": {},
|
|
||||||
"roles": {},
|
|
||||||
"policies": {},
|
|
||||||
"views": {},
|
|
||||||
"_meta": {
|
|
||||||
"columns": {},
|
|
||||||
"schemas": {},
|
|
||||||
"tables": {}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,212 +0,0 @@
|
||||||
{
|
|
||||||
"id": "fded46bd-99e1-4cc3-9e18-e4d1f15c4bcb",
|
|
||||||
"prevId": "76340b3d-907a-4a46-a13e-dff2c4bd98d4",
|
|
||||||
"version": "7",
|
|
||||||
"dialect": "postgresql",
|
|
||||||
"tables": {
|
|
||||||
"public.profiles": {
|
|
||||||
"name": "profiles",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"user": {
|
|
||||||
"name": "user",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"bio": {
|
|
||||||
"name": "bio",
|
|
||||||
"type": "varchar(1024)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "''"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"profiles_user_users_id_fk": {
|
|
||||||
"name": "profiles_user_users_id_fk",
|
|
||||||
"tableFrom": "profiles",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.updates": {
|
|
||||||
"name": "updates",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"identity": {
|
|
||||||
"type": "always",
|
|
||||||
"name": "updates_id_seq",
|
|
||||||
"schema": "public",
|
|
||||||
"increment": "1",
|
|
||||||
"startWith": "1",
|
|
||||||
"minValue": "1",
|
|
||||||
"maxValue": "2147483647",
|
|
||||||
"cache": "1",
|
|
||||||
"cycle": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"user": {
|
|
||||||
"name": "user",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"mood": {
|
|
||||||
"name": "mood",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": 0
|
|
||||||
},
|
|
||||||
"description": {
|
|
||||||
"name": "description",
|
|
||||||
"type": "varchar(512)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "''"
|
|
||||||
},
|
|
||||||
"date": {
|
|
||||||
"name": "date",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"updates_user_users_id_fk": {
|
|
||||||
"name": "updates_user_users_id_fk",
|
|
||||||
"tableFrom": "updates",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.users": {
|
|
||||||
"name": "users",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"identity": {
|
|
||||||
"type": "always",
|
|
||||||
"name": "users_id_seq",
|
|
||||||
"schema": "public",
|
|
||||||
"increment": "1",
|
|
||||||
"startWith": "1",
|
|
||||||
"minValue": "1",
|
|
||||||
"maxValue": "2147483647",
|
|
||||||
"cache": "1",
|
|
||||||
"cycle": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"email": {
|
|
||||||
"name": "email",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"name": {
|
|
||||||
"name": "name",
|
|
||||||
"type": "varchar(26)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"pass": {
|
|
||||||
"name": "pass",
|
|
||||||
"type": "varchar(255)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"registered": {
|
|
||||||
"name": "registered",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"moderator": {
|
|
||||||
"name": "moderator",
|
|
||||||
"type": "boolean",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"banned": {
|
|
||||||
"name": "banned",
|
|
||||||
"type": "boolean",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {
|
|
||||||
"users_email_unique": {
|
|
||||||
"name": "users_email_unique",
|
|
||||||
"nullsNotDistinct": false,
|
|
||||||
"columns": [
|
|
||||||
"email"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"users_name_unique": {
|
|
||||||
"name": "users_name_unique",
|
|
||||||
"nullsNotDistinct": false,
|
|
||||||
"columns": [
|
|
||||||
"name"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"enums": {},
|
|
||||||
"schemas": {},
|
|
||||||
"sequences": {},
|
|
||||||
"roles": {},
|
|
||||||
"policies": {},
|
|
||||||
"views": {},
|
|
||||||
"_meta": {
|
|
||||||
"columns": {},
|
|
||||||
"schemas": {},
|
|
||||||
"tables": {}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,279 +0,0 @@
|
||||||
{
|
|
||||||
"id": "f8ae31ec-68e9-4857-93b2-abd7f834e580",
|
|
||||||
"prevId": "fded46bd-99e1-4cc3-9e18-e4d1f15c4bcb",
|
|
||||||
"version": "7",
|
|
||||||
"dialect": "postgresql",
|
|
||||||
"tables": {
|
|
||||||
"public.follows": {
|
|
||||||
"name": "follows",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"user_id": {
|
|
||||||
"name": "user_id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"follower_id": {
|
|
||||||
"name": "follower_id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"follows_user_id_users_id_fk": {
|
|
||||||
"name": "follows_user_id_users_id_fk",
|
|
||||||
"tableFrom": "follows",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
},
|
|
||||||
"follows_follower_id_users_id_fk": {
|
|
||||||
"name": "follows_follower_id_users_id_fk",
|
|
||||||
"tableFrom": "follows",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"follower_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {
|
|
||||||
"follows_user_id_follower_id_pk": {
|
|
||||||
"name": "follows_user_id_follower_id_pk",
|
|
||||||
"columns": [
|
|
||||||
"user_id",
|
|
||||||
"follower_id"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.profiles": {
|
|
||||||
"name": "profiles",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"user": {
|
|
||||||
"name": "user",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"bio": {
|
|
||||||
"name": "bio",
|
|
||||||
"type": "varchar(1024)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "''"
|
|
||||||
},
|
|
||||||
"website": {
|
|
||||||
"name": "website",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "''"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"profiles_user_users_id_fk": {
|
|
||||||
"name": "profiles_user_users_id_fk",
|
|
||||||
"tableFrom": "profiles",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.updates": {
|
|
||||||
"name": "updates",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"identity": {
|
|
||||||
"type": "always",
|
|
||||||
"name": "updates_id_seq",
|
|
||||||
"schema": "public",
|
|
||||||
"increment": "1",
|
|
||||||
"startWith": "1",
|
|
||||||
"minValue": "1",
|
|
||||||
"maxValue": "2147483647",
|
|
||||||
"cache": "1",
|
|
||||||
"cycle": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"user": {
|
|
||||||
"name": "user",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"mood": {
|
|
||||||
"name": "mood",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": 0
|
|
||||||
},
|
|
||||||
"description": {
|
|
||||||
"name": "description",
|
|
||||||
"type": "varchar(512)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "''"
|
|
||||||
},
|
|
||||||
"date": {
|
|
||||||
"name": "date",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"updates_user_users_id_fk": {
|
|
||||||
"name": "updates_user_users_id_fk",
|
|
||||||
"tableFrom": "updates",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.users": {
|
|
||||||
"name": "users",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"identity": {
|
|
||||||
"type": "always",
|
|
||||||
"name": "users_id_seq",
|
|
||||||
"schema": "public",
|
|
||||||
"increment": "1",
|
|
||||||
"startWith": "1",
|
|
||||||
"minValue": "1",
|
|
||||||
"maxValue": "2147483647",
|
|
||||||
"cache": "1",
|
|
||||||
"cycle": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"email": {
|
|
||||||
"name": "email",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"name": {
|
|
||||||
"name": "name",
|
|
||||||
"type": "varchar(26)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"pass": {
|
|
||||||
"name": "pass",
|
|
||||||
"type": "varchar(255)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"registered": {
|
|
||||||
"name": "registered",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"moderator": {
|
|
||||||
"name": "moderator",
|
|
||||||
"type": "boolean",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"banned": {
|
|
||||||
"name": "banned",
|
|
||||||
"type": "boolean",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {
|
|
||||||
"users_email_unique": {
|
|
||||||
"name": "users_email_unique",
|
|
||||||
"nullsNotDistinct": false,
|
|
||||||
"columns": [
|
|
||||||
"email"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"users_name_unique": {
|
|
||||||
"name": "users_name_unique",
|
|
||||||
"nullsNotDistinct": false,
|
|
||||||
"columns": [
|
|
||||||
"name"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"enums": {},
|
|
||||||
"schemas": {},
|
|
||||||
"sequences": {},
|
|
||||||
"roles": {},
|
|
||||||
"policies": {},
|
|
||||||
"views": {},
|
|
||||||
"_meta": {
|
|
||||||
"columns": {},
|
|
||||||
"schemas": {},
|
|
||||||
"tables": {}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,356 +0,0 @@
|
||||||
{
|
|
||||||
"id": "73a239ee-a945-48e0-a021-d415815a830b",
|
|
||||||
"prevId": "f8ae31ec-68e9-4857-93b2-abd7f834e580",
|
|
||||||
"version": "7",
|
|
||||||
"dialect": "postgresql",
|
|
||||||
"tables": {
|
|
||||||
"public.follows": {
|
|
||||||
"name": "follows",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"user_id": {
|
|
||||||
"name": "user_id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"follower_id": {
|
|
||||||
"name": "follower_id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"follows_user_id_users_id_fk": {
|
|
||||||
"name": "follows_user_id_users_id_fk",
|
|
||||||
"tableFrom": "follows",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
},
|
|
||||||
"follows_follower_id_users_id_fk": {
|
|
||||||
"name": "follows_follower_id_users_id_fk",
|
|
||||||
"tableFrom": "follows",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"follower_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {
|
|
||||||
"follows_user_id_follower_id_pk": {
|
|
||||||
"name": "follows_user_id_follower_id_pk",
|
|
||||||
"columns": [
|
|
||||||
"user_id",
|
|
||||||
"follower_id"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.journal_entries": {
|
|
||||||
"name": "journal_entries",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"identity": {
|
|
||||||
"type": "always",
|
|
||||||
"name": "journal_entries_id_seq",
|
|
||||||
"schema": "public",
|
|
||||||
"increment": "1",
|
|
||||||
"startWith": "1",
|
|
||||||
"minValue": "1",
|
|
||||||
"maxValue": "2147483647",
|
|
||||||
"cache": "1",
|
|
||||||
"cycle": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"user": {
|
|
||||||
"name": "user",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"mood-change": {
|
|
||||||
"name": "mood-change",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": 0
|
|
||||||
},
|
|
||||||
"entry": {
|
|
||||||
"name": "entry",
|
|
||||||
"type": "varchar(4096)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "''"
|
|
||||||
},
|
|
||||||
"visibility": {
|
|
||||||
"name": "visibility",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": 1
|
|
||||||
},
|
|
||||||
"date": {
|
|
||||||
"name": "date",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"journal_entries_user_users_id_fk": {
|
|
||||||
"name": "journal_entries_user_users_id_fk",
|
|
||||||
"tableFrom": "journal_entries",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.profiles": {
|
|
||||||
"name": "profiles",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"user": {
|
|
||||||
"name": "user",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"bio": {
|
|
||||||
"name": "bio",
|
|
||||||
"type": "varchar(1024)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "''"
|
|
||||||
},
|
|
||||||
"website": {
|
|
||||||
"name": "website",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "''"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"profiles_user_users_id_fk": {
|
|
||||||
"name": "profiles_user_users_id_fk",
|
|
||||||
"tableFrom": "profiles",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.updates": {
|
|
||||||
"name": "updates",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"identity": {
|
|
||||||
"type": "always",
|
|
||||||
"name": "updates_id_seq",
|
|
||||||
"schema": "public",
|
|
||||||
"increment": "1",
|
|
||||||
"startWith": "1",
|
|
||||||
"minValue": "1",
|
|
||||||
"maxValue": "2147483647",
|
|
||||||
"cache": "1",
|
|
||||||
"cycle": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"user": {
|
|
||||||
"name": "user",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"mood": {
|
|
||||||
"name": "mood",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": 0
|
|
||||||
},
|
|
||||||
"description": {
|
|
||||||
"name": "description",
|
|
||||||
"type": "varchar(512)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "''"
|
|
||||||
},
|
|
||||||
"date": {
|
|
||||||
"name": "date",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"updates_user_users_id_fk": {
|
|
||||||
"name": "updates_user_users_id_fk",
|
|
||||||
"tableFrom": "updates",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.users": {
|
|
||||||
"name": "users",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"identity": {
|
|
||||||
"type": "always",
|
|
||||||
"name": "users_id_seq",
|
|
||||||
"schema": "public",
|
|
||||||
"increment": "1",
|
|
||||||
"startWith": "1",
|
|
||||||
"minValue": "1",
|
|
||||||
"maxValue": "2147483647",
|
|
||||||
"cache": "1",
|
|
||||||
"cycle": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"email": {
|
|
||||||
"name": "email",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"name": {
|
|
||||||
"name": "name",
|
|
||||||
"type": "varchar(26)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"pass": {
|
|
||||||
"name": "pass",
|
|
||||||
"type": "varchar(255)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"registered": {
|
|
||||||
"name": "registered",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"moderator": {
|
|
||||||
"name": "moderator",
|
|
||||||
"type": "boolean",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"banned": {
|
|
||||||
"name": "banned",
|
|
||||||
"type": "boolean",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {
|
|
||||||
"users_email_unique": {
|
|
||||||
"name": "users_email_unique",
|
|
||||||
"nullsNotDistinct": false,
|
|
||||||
"columns": [
|
|
||||||
"email"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"users_name_unique": {
|
|
||||||
"name": "users_name_unique",
|
|
||||||
"nullsNotDistinct": false,
|
|
||||||
"columns": [
|
|
||||||
"name"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"enums": {},
|
|
||||||
"schemas": {},
|
|
||||||
"sequences": {},
|
|
||||||
"roles": {},
|
|
||||||
"policies": {},
|
|
||||||
"views": {},
|
|
||||||
"_meta": {
|
|
||||||
"columns": {},
|
|
||||||
"schemas": {},
|
|
||||||
"tables": {}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,408 +0,0 @@
|
||||||
{
|
|
||||||
"id": "f40891bb-8a67-4d29-8772-b05615e0aa9f",
|
|
||||||
"prevId": "73a239ee-a945-48e0-a021-d415815a830b",
|
|
||||||
"version": "7",
|
|
||||||
"dialect": "postgresql",
|
|
||||||
"tables": {
|
|
||||||
"public.follows": {
|
|
||||||
"name": "follows",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"user_id": {
|
|
||||||
"name": "user_id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"follower_id": {
|
|
||||||
"name": "follower_id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"follows_user_id_users_id_fk": {
|
|
||||||
"name": "follows_user_id_users_id_fk",
|
|
||||||
"tableFrom": "follows",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
},
|
|
||||||
"follows_follower_id_users_id_fk": {
|
|
||||||
"name": "follows_follower_id_users_id_fk",
|
|
||||||
"tableFrom": "follows",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"follower_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {
|
|
||||||
"follows_user_id_follower_id_pk": {
|
|
||||||
"name": "follows_user_id_follower_id_pk",
|
|
||||||
"columns": [
|
|
||||||
"user_id",
|
|
||||||
"follower_id"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.invite_codes": {
|
|
||||||
"name": "invite_codes",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"token": {
|
|
||||||
"name": "token",
|
|
||||||
"type": "varchar(8)",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"user_id": {
|
|
||||||
"name": "user_id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"granted": {
|
|
||||||
"name": "granted",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"expires": {
|
|
||||||
"name": "expires",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"default": "'1970-01-01 00:00:00.000'"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"invite_codes_user_id_users_id_fk": {
|
|
||||||
"name": "invite_codes_user_id_users_id_fk",
|
|
||||||
"tableFrom": "invite_codes",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.journal_entries": {
|
|
||||||
"name": "journal_entries",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"identity": {
|
|
||||||
"type": "always",
|
|
||||||
"name": "journal_entries_id_seq",
|
|
||||||
"schema": "public",
|
|
||||||
"increment": "1",
|
|
||||||
"startWith": "1",
|
|
||||||
"minValue": "1",
|
|
||||||
"maxValue": "2147483647",
|
|
||||||
"cache": "1",
|
|
||||||
"cycle": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"user": {
|
|
||||||
"name": "user",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"mood-change": {
|
|
||||||
"name": "mood-change",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": 0
|
|
||||||
},
|
|
||||||
"entry": {
|
|
||||||
"name": "entry",
|
|
||||||
"type": "varchar(4096)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "''"
|
|
||||||
},
|
|
||||||
"visibility": {
|
|
||||||
"name": "visibility",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": 1
|
|
||||||
},
|
|
||||||
"date": {
|
|
||||||
"name": "date",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"journal_entries_user_users_id_fk": {
|
|
||||||
"name": "journal_entries_user_users_id_fk",
|
|
||||||
"tableFrom": "journal_entries",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.profiles": {
|
|
||||||
"name": "profiles",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"user": {
|
|
||||||
"name": "user",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"bio": {
|
|
||||||
"name": "bio",
|
|
||||||
"type": "varchar(1024)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "''"
|
|
||||||
},
|
|
||||||
"website": {
|
|
||||||
"name": "website",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "''"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"profiles_user_users_id_fk": {
|
|
||||||
"name": "profiles_user_users_id_fk",
|
|
||||||
"tableFrom": "profiles",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.updates": {
|
|
||||||
"name": "updates",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"identity": {
|
|
||||||
"type": "always",
|
|
||||||
"name": "updates_id_seq",
|
|
||||||
"schema": "public",
|
|
||||||
"increment": "1",
|
|
||||||
"startWith": "1",
|
|
||||||
"minValue": "1",
|
|
||||||
"maxValue": "2147483647",
|
|
||||||
"cache": "1",
|
|
||||||
"cycle": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"user": {
|
|
||||||
"name": "user",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"mood": {
|
|
||||||
"name": "mood",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": 0
|
|
||||||
},
|
|
||||||
"description": {
|
|
||||||
"name": "description",
|
|
||||||
"type": "varchar(512)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "''"
|
|
||||||
},
|
|
||||||
"date": {
|
|
||||||
"name": "date",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"updates_user_users_id_fk": {
|
|
||||||
"name": "updates_user_users_id_fk",
|
|
||||||
"tableFrom": "updates",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.users": {
|
|
||||||
"name": "users",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"identity": {
|
|
||||||
"type": "always",
|
|
||||||
"name": "users_id_seq",
|
|
||||||
"schema": "public",
|
|
||||||
"increment": "1",
|
|
||||||
"startWith": "1",
|
|
||||||
"minValue": "1",
|
|
||||||
"maxValue": "2147483647",
|
|
||||||
"cache": "1",
|
|
||||||
"cycle": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"email": {
|
|
||||||
"name": "email",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"name": {
|
|
||||||
"name": "name",
|
|
||||||
"type": "varchar(26)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"pass": {
|
|
||||||
"name": "pass",
|
|
||||||
"type": "varchar(255)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"registered": {
|
|
||||||
"name": "registered",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"moderator": {
|
|
||||||
"name": "moderator",
|
|
||||||
"type": "boolean",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"banned": {
|
|
||||||
"name": "banned",
|
|
||||||
"type": "boolean",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {
|
|
||||||
"users_email_unique": {
|
|
||||||
"name": "users_email_unique",
|
|
||||||
"nullsNotDistinct": false,
|
|
||||||
"columns": [
|
|
||||||
"email"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"users_name_unique": {
|
|
||||||
"name": "users_name_unique",
|
|
||||||
"nullsNotDistinct": false,
|
|
||||||
"columns": [
|
|
||||||
"name"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"enums": {},
|
|
||||||
"schemas": {},
|
|
||||||
"sequences": {},
|
|
||||||
"roles": {},
|
|
||||||
"policies": {},
|
|
||||||
"views": {},
|
|
||||||
"_meta": {
|
|
||||||
"columns": {},
|
|
||||||
"schemas": {},
|
|
||||||
"tables": {}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,415 +0,0 @@
|
||||||
{
|
|
||||||
"id": "09a82ff0-6a18-4587-a33f-a55c2fef2ebf",
|
|
||||||
"prevId": "f40891bb-8a67-4d29-8772-b05615e0aa9f",
|
|
||||||
"version": "7",
|
|
||||||
"dialect": "postgresql",
|
|
||||||
"tables": {
|
|
||||||
"public.follows": {
|
|
||||||
"name": "follows",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"user_id": {
|
|
||||||
"name": "user_id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"follower_id": {
|
|
||||||
"name": "follower_id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"follows_user_id_users_id_fk": {
|
|
||||||
"name": "follows_user_id_users_id_fk",
|
|
||||||
"tableFrom": "follows",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
},
|
|
||||||
"follows_follower_id_users_id_fk": {
|
|
||||||
"name": "follows_follower_id_users_id_fk",
|
|
||||||
"tableFrom": "follows",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"follower_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {
|
|
||||||
"follows_user_id_follower_id_pk": {
|
|
||||||
"name": "follows_user_id_follower_id_pk",
|
|
||||||
"columns": [
|
|
||||||
"user_id",
|
|
||||||
"follower_id"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.invite_codes": {
|
|
||||||
"name": "invite_codes",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"token": {
|
|
||||||
"name": "token",
|
|
||||||
"type": "varchar(20)",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"user_id": {
|
|
||||||
"name": "user_id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"granted": {
|
|
||||||
"name": "granted",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"expires": {
|
|
||||||
"name": "expires",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"default": "'1970-01-01 00:00:00.000'"
|
|
||||||
},
|
|
||||||
"confersAdmin": {
|
|
||||||
"name": "confersAdmin",
|
|
||||||
"type": "boolean",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"default": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"invite_codes_user_id_users_id_fk": {
|
|
||||||
"name": "invite_codes_user_id_users_id_fk",
|
|
||||||
"tableFrom": "invite_codes",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.journal_entries": {
|
|
||||||
"name": "journal_entries",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"identity": {
|
|
||||||
"type": "always",
|
|
||||||
"name": "journal_entries_id_seq",
|
|
||||||
"schema": "public",
|
|
||||||
"increment": "1",
|
|
||||||
"startWith": "1",
|
|
||||||
"minValue": "1",
|
|
||||||
"maxValue": "2147483647",
|
|
||||||
"cache": "1",
|
|
||||||
"cycle": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"user": {
|
|
||||||
"name": "user",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"mood-change": {
|
|
||||||
"name": "mood-change",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": 0
|
|
||||||
},
|
|
||||||
"entry": {
|
|
||||||
"name": "entry",
|
|
||||||
"type": "varchar(4096)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "''"
|
|
||||||
},
|
|
||||||
"visibility": {
|
|
||||||
"name": "visibility",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": 1
|
|
||||||
},
|
|
||||||
"date": {
|
|
||||||
"name": "date",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"journal_entries_user_users_id_fk": {
|
|
||||||
"name": "journal_entries_user_users_id_fk",
|
|
||||||
"tableFrom": "journal_entries",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.profiles": {
|
|
||||||
"name": "profiles",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"user": {
|
|
||||||
"name": "user",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"bio": {
|
|
||||||
"name": "bio",
|
|
||||||
"type": "varchar(1024)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "''"
|
|
||||||
},
|
|
||||||
"website": {
|
|
||||||
"name": "website",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "''"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"profiles_user_users_id_fk": {
|
|
||||||
"name": "profiles_user_users_id_fk",
|
|
||||||
"tableFrom": "profiles",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.updates": {
|
|
||||||
"name": "updates",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"identity": {
|
|
||||||
"type": "always",
|
|
||||||
"name": "updates_id_seq",
|
|
||||||
"schema": "public",
|
|
||||||
"increment": "1",
|
|
||||||
"startWith": "1",
|
|
||||||
"minValue": "1",
|
|
||||||
"maxValue": "2147483647",
|
|
||||||
"cache": "1",
|
|
||||||
"cycle": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"user": {
|
|
||||||
"name": "user",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"mood": {
|
|
||||||
"name": "mood",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": 0
|
|
||||||
},
|
|
||||||
"description": {
|
|
||||||
"name": "description",
|
|
||||||
"type": "varchar(512)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "''"
|
|
||||||
},
|
|
||||||
"date": {
|
|
||||||
"name": "date",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"updates_user_users_id_fk": {
|
|
||||||
"name": "updates_user_users_id_fk",
|
|
||||||
"tableFrom": "updates",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.users": {
|
|
||||||
"name": "users",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"identity": {
|
|
||||||
"type": "always",
|
|
||||||
"name": "users_id_seq",
|
|
||||||
"schema": "public",
|
|
||||||
"increment": "1",
|
|
||||||
"startWith": "1",
|
|
||||||
"minValue": "1",
|
|
||||||
"maxValue": "2147483647",
|
|
||||||
"cache": "1",
|
|
||||||
"cycle": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"email": {
|
|
||||||
"name": "email",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"name": {
|
|
||||||
"name": "name",
|
|
||||||
"type": "varchar(26)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"pass": {
|
|
||||||
"name": "pass",
|
|
||||||
"type": "varchar(255)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"registered": {
|
|
||||||
"name": "registered",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"moderator": {
|
|
||||||
"name": "moderator",
|
|
||||||
"type": "boolean",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"banned": {
|
|
||||||
"name": "banned",
|
|
||||||
"type": "boolean",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {
|
|
||||||
"users_email_unique": {
|
|
||||||
"name": "users_email_unique",
|
|
||||||
"nullsNotDistinct": false,
|
|
||||||
"columns": [
|
|
||||||
"email"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"users_name_unique": {
|
|
||||||
"name": "users_name_unique",
|
|
||||||
"nullsNotDistinct": false,
|
|
||||||
"columns": [
|
|
||||||
"name"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"enums": {},
|
|
||||||
"schemas": {},
|
|
||||||
"sequences": {},
|
|
||||||
"roles": {},
|
|
||||||
"policies": {},
|
|
||||||
"views": {},
|
|
||||||
"_meta": {
|
|
||||||
"columns": {},
|
|
||||||
"schemas": {},
|
|
||||||
"tables": {}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,415 +0,0 @@
|
||||||
{
|
|
||||||
"id": "49ea990a-0039-44d5-a35e-319db2299a46",
|
|
||||||
"prevId": "09a82ff0-6a18-4587-a33f-a55c2fef2ebf",
|
|
||||||
"version": "7",
|
|
||||||
"dialect": "postgresql",
|
|
||||||
"tables": {
|
|
||||||
"public.follows": {
|
|
||||||
"name": "follows",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"user_id": {
|
|
||||||
"name": "user_id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"follower_id": {
|
|
||||||
"name": "follower_id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"follows_user_id_users_id_fk": {
|
|
||||||
"name": "follows_user_id_users_id_fk",
|
|
||||||
"tableFrom": "follows",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
},
|
|
||||||
"follows_follower_id_users_id_fk": {
|
|
||||||
"name": "follows_follower_id_users_id_fk",
|
|
||||||
"tableFrom": "follows",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"follower_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {
|
|
||||||
"follows_user_id_follower_id_pk": {
|
|
||||||
"name": "follows_user_id_follower_id_pk",
|
|
||||||
"columns": [
|
|
||||||
"user_id",
|
|
||||||
"follower_id"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.invite_codes": {
|
|
||||||
"name": "invite_codes",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"token": {
|
|
||||||
"name": "token",
|
|
||||||
"type": "varchar(20)",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"user_id": {
|
|
||||||
"name": "user_id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"granted": {
|
|
||||||
"name": "granted",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"expires": {
|
|
||||||
"name": "expires",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"default": "'1970-01-01 00:00:00.000'"
|
|
||||||
},
|
|
||||||
"confers_admin": {
|
|
||||||
"name": "confers_admin",
|
|
||||||
"type": "boolean",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"default": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"invite_codes_user_id_users_id_fk": {
|
|
||||||
"name": "invite_codes_user_id_users_id_fk",
|
|
||||||
"tableFrom": "invite_codes",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.journal_entries": {
|
|
||||||
"name": "journal_entries",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"identity": {
|
|
||||||
"type": "always",
|
|
||||||
"name": "journal_entries_id_seq",
|
|
||||||
"schema": "public",
|
|
||||||
"increment": "1",
|
|
||||||
"startWith": "1",
|
|
||||||
"minValue": "1",
|
|
||||||
"maxValue": "2147483647",
|
|
||||||
"cache": "1",
|
|
||||||
"cycle": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"user": {
|
|
||||||
"name": "user",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"mood-change": {
|
|
||||||
"name": "mood-change",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": 0
|
|
||||||
},
|
|
||||||
"entry": {
|
|
||||||
"name": "entry",
|
|
||||||
"type": "varchar(4096)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "''"
|
|
||||||
},
|
|
||||||
"visibility": {
|
|
||||||
"name": "visibility",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": 1
|
|
||||||
},
|
|
||||||
"date": {
|
|
||||||
"name": "date",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"journal_entries_user_users_id_fk": {
|
|
||||||
"name": "journal_entries_user_users_id_fk",
|
|
||||||
"tableFrom": "journal_entries",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.profiles": {
|
|
||||||
"name": "profiles",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"user": {
|
|
||||||
"name": "user",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"bio": {
|
|
||||||
"name": "bio",
|
|
||||||
"type": "varchar(1024)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "''"
|
|
||||||
},
|
|
||||||
"website": {
|
|
||||||
"name": "website",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "''"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"profiles_user_users_id_fk": {
|
|
||||||
"name": "profiles_user_users_id_fk",
|
|
||||||
"tableFrom": "profiles",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.updates": {
|
|
||||||
"name": "updates",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"identity": {
|
|
||||||
"type": "always",
|
|
||||||
"name": "updates_id_seq",
|
|
||||||
"schema": "public",
|
|
||||||
"increment": "1",
|
|
||||||
"startWith": "1",
|
|
||||||
"minValue": "1",
|
|
||||||
"maxValue": "2147483647",
|
|
||||||
"cache": "1",
|
|
||||||
"cycle": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"user": {
|
|
||||||
"name": "user",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"mood": {
|
|
||||||
"name": "mood",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": 0
|
|
||||||
},
|
|
||||||
"description": {
|
|
||||||
"name": "description",
|
|
||||||
"type": "varchar(512)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "''"
|
|
||||||
},
|
|
||||||
"date": {
|
|
||||||
"name": "date",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"updates_user_users_id_fk": {
|
|
||||||
"name": "updates_user_users_id_fk",
|
|
||||||
"tableFrom": "updates",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.users": {
|
|
||||||
"name": "users",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"identity": {
|
|
||||||
"type": "always",
|
|
||||||
"name": "users_id_seq",
|
|
||||||
"schema": "public",
|
|
||||||
"increment": "1",
|
|
||||||
"startWith": "1",
|
|
||||||
"minValue": "1",
|
|
||||||
"maxValue": "2147483647",
|
|
||||||
"cache": "1",
|
|
||||||
"cycle": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"email": {
|
|
||||||
"name": "email",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"name": {
|
|
||||||
"name": "name",
|
|
||||||
"type": "varchar(26)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"pass": {
|
|
||||||
"name": "pass",
|
|
||||||
"type": "varchar(255)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"registered": {
|
|
||||||
"name": "registered",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"moderator": {
|
|
||||||
"name": "moderator",
|
|
||||||
"type": "boolean",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"banned": {
|
|
||||||
"name": "banned",
|
|
||||||
"type": "boolean",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {
|
|
||||||
"users_email_unique": {
|
|
||||||
"name": "users_email_unique",
|
|
||||||
"nullsNotDistinct": false,
|
|
||||||
"columns": [
|
|
||||||
"email"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"users_name_unique": {
|
|
||||||
"name": "users_name_unique",
|
|
||||||
"nullsNotDistinct": false,
|
|
||||||
"columns": [
|
|
||||||
"name"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"enums": {},
|
|
||||||
"schemas": {},
|
|
||||||
"sequences": {},
|
|
||||||
"roles": {},
|
|
||||||
"policies": {},
|
|
||||||
"views": {},
|
|
||||||
"_meta": {
|
|
||||||
"columns": {},
|
|
||||||
"schemas": {},
|
|
||||||
"tables": {}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,415 +0,0 @@
|
||||||
{
|
|
||||||
"id": "61539639-4e1f-4bf2-854e-1657c5024c6c",
|
|
||||||
"prevId": "49ea990a-0039-44d5-a35e-319db2299a46",
|
|
||||||
"version": "7",
|
|
||||||
"dialect": "postgresql",
|
|
||||||
"tables": {
|
|
||||||
"public.follows": {
|
|
||||||
"name": "follows",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"user_id": {
|
|
||||||
"name": "user_id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"follower_id": {
|
|
||||||
"name": "follower_id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"follows_user_id_users_id_fk": {
|
|
||||||
"name": "follows_user_id_users_id_fk",
|
|
||||||
"tableFrom": "follows",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
},
|
|
||||||
"follows_follower_id_users_id_fk": {
|
|
||||||
"name": "follows_follower_id_users_id_fk",
|
|
||||||
"tableFrom": "follows",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"follower_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {
|
|
||||||
"follows_user_id_follower_id_pk": {
|
|
||||||
"name": "follows_user_id_follower_id_pk",
|
|
||||||
"columns": [
|
|
||||||
"user_id",
|
|
||||||
"follower_id"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.invite_codes": {
|
|
||||||
"name": "invite_codes",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"token": {
|
|
||||||
"name": "token",
|
|
||||||
"type": "varchar(20)",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"user_id": {
|
|
||||||
"name": "user_id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"granted": {
|
|
||||||
"name": "granted",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"expires": {
|
|
||||||
"name": "expires",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"default": "'1970-01-01 00:00:00.000'"
|
|
||||||
},
|
|
||||||
"confers_moderator": {
|
|
||||||
"name": "confers_moderator",
|
|
||||||
"type": "boolean",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"default": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"invite_codes_user_id_users_id_fk": {
|
|
||||||
"name": "invite_codes_user_id_users_id_fk",
|
|
||||||
"tableFrom": "invite_codes",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.journal_entries": {
|
|
||||||
"name": "journal_entries",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"identity": {
|
|
||||||
"type": "always",
|
|
||||||
"name": "journal_entries_id_seq",
|
|
||||||
"schema": "public",
|
|
||||||
"increment": "1",
|
|
||||||
"startWith": "1",
|
|
||||||
"minValue": "1",
|
|
||||||
"maxValue": "2147483647",
|
|
||||||
"cache": "1",
|
|
||||||
"cycle": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"user": {
|
|
||||||
"name": "user",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"mood-change": {
|
|
||||||
"name": "mood-change",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": 0
|
|
||||||
},
|
|
||||||
"entry": {
|
|
||||||
"name": "entry",
|
|
||||||
"type": "varchar(4096)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "''"
|
|
||||||
},
|
|
||||||
"visibility": {
|
|
||||||
"name": "visibility",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": 1
|
|
||||||
},
|
|
||||||
"date": {
|
|
||||||
"name": "date",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"journal_entries_user_users_id_fk": {
|
|
||||||
"name": "journal_entries_user_users_id_fk",
|
|
||||||
"tableFrom": "journal_entries",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.profiles": {
|
|
||||||
"name": "profiles",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"user": {
|
|
||||||
"name": "user",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"bio": {
|
|
||||||
"name": "bio",
|
|
||||||
"type": "varchar(1024)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "''"
|
|
||||||
},
|
|
||||||
"website": {
|
|
||||||
"name": "website",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "''"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"profiles_user_users_id_fk": {
|
|
||||||
"name": "profiles_user_users_id_fk",
|
|
||||||
"tableFrom": "profiles",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.updates": {
|
|
||||||
"name": "updates",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"identity": {
|
|
||||||
"type": "always",
|
|
||||||
"name": "updates_id_seq",
|
|
||||||
"schema": "public",
|
|
||||||
"increment": "1",
|
|
||||||
"startWith": "1",
|
|
||||||
"minValue": "1",
|
|
||||||
"maxValue": "2147483647",
|
|
||||||
"cache": "1",
|
|
||||||
"cycle": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"user": {
|
|
||||||
"name": "user",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"mood": {
|
|
||||||
"name": "mood",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": 0
|
|
||||||
},
|
|
||||||
"description": {
|
|
||||||
"name": "description",
|
|
||||||
"type": "varchar(512)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "''"
|
|
||||||
},
|
|
||||||
"date": {
|
|
||||||
"name": "date",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"updates_user_users_id_fk": {
|
|
||||||
"name": "updates_user_users_id_fk",
|
|
||||||
"tableFrom": "updates",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.users": {
|
|
||||||
"name": "users",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"identity": {
|
|
||||||
"type": "always",
|
|
||||||
"name": "users_id_seq",
|
|
||||||
"schema": "public",
|
|
||||||
"increment": "1",
|
|
||||||
"startWith": "1",
|
|
||||||
"minValue": "1",
|
|
||||||
"maxValue": "2147483647",
|
|
||||||
"cache": "1",
|
|
||||||
"cycle": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"email": {
|
|
||||||
"name": "email",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"name": {
|
|
||||||
"name": "name",
|
|
||||||
"type": "varchar(26)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"pass": {
|
|
||||||
"name": "pass",
|
|
||||||
"type": "varchar(255)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"registered": {
|
|
||||||
"name": "registered",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"moderator": {
|
|
||||||
"name": "moderator",
|
|
||||||
"type": "boolean",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"banned": {
|
|
||||||
"name": "banned",
|
|
||||||
"type": "boolean",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {
|
|
||||||
"users_email_unique": {
|
|
||||||
"name": "users_email_unique",
|
|
||||||
"nullsNotDistinct": false,
|
|
||||||
"columns": [
|
|
||||||
"email"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"users_name_unique": {
|
|
||||||
"name": "users_name_unique",
|
|
||||||
"nullsNotDistinct": false,
|
|
||||||
"columns": [
|
|
||||||
"name"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"enums": {},
|
|
||||||
"schemas": {},
|
|
||||||
"sequences": {},
|
|
||||||
"roles": {},
|
|
||||||
"policies": {},
|
|
||||||
"views": {},
|
|
||||||
"_meta": {
|
|
||||||
"columns": {},
|
|
||||||
"schemas": {},
|
|
||||||
"tables": {}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,415 +0,0 @@
|
||||||
{
|
|
||||||
"id": "d928a4c4-ab43-4979-b6aa-3892f29701c8",
|
|
||||||
"prevId": "61539639-4e1f-4bf2-854e-1657c5024c6c",
|
|
||||||
"version": "7",
|
|
||||||
"dialect": "postgresql",
|
|
||||||
"tables": {
|
|
||||||
"public.follows": {
|
|
||||||
"name": "follows",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"user_id": {
|
|
||||||
"name": "user_id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"follower_id": {
|
|
||||||
"name": "follower_id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"follows_user_id_users_id_fk": {
|
|
||||||
"name": "follows_user_id_users_id_fk",
|
|
||||||
"tableFrom": "follows",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
},
|
|
||||||
"follows_follower_id_users_id_fk": {
|
|
||||||
"name": "follows_follower_id_users_id_fk",
|
|
||||||
"tableFrom": "follows",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"follower_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {
|
|
||||||
"follows_user_id_follower_id_pk": {
|
|
||||||
"name": "follows_user_id_follower_id_pk",
|
|
||||||
"columns": [
|
|
||||||
"user_id",
|
|
||||||
"follower_id"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.invite_codes": {
|
|
||||||
"name": "invite_codes",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"token": {
|
|
||||||
"name": "token",
|
|
||||||
"type": "varchar(22)",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"user_id": {
|
|
||||||
"name": "user_id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"granted": {
|
|
||||||
"name": "granted",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"expires": {
|
|
||||||
"name": "expires",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"default": "'1970-01-01 00:00:00.000'"
|
|
||||||
},
|
|
||||||
"confers_moderator": {
|
|
||||||
"name": "confers_moderator",
|
|
||||||
"type": "boolean",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"default": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"invite_codes_user_id_users_id_fk": {
|
|
||||||
"name": "invite_codes_user_id_users_id_fk",
|
|
||||||
"tableFrom": "invite_codes",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.journal_entries": {
|
|
||||||
"name": "journal_entries",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"identity": {
|
|
||||||
"type": "always",
|
|
||||||
"name": "journal_entries_id_seq",
|
|
||||||
"schema": "public",
|
|
||||||
"increment": "1",
|
|
||||||
"startWith": "1",
|
|
||||||
"minValue": "1",
|
|
||||||
"maxValue": "2147483647",
|
|
||||||
"cache": "1",
|
|
||||||
"cycle": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"user": {
|
|
||||||
"name": "user",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"mood-change": {
|
|
||||||
"name": "mood-change",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": 0
|
|
||||||
},
|
|
||||||
"entry": {
|
|
||||||
"name": "entry",
|
|
||||||
"type": "varchar(4096)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "''"
|
|
||||||
},
|
|
||||||
"visibility": {
|
|
||||||
"name": "visibility",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": 1
|
|
||||||
},
|
|
||||||
"date": {
|
|
||||||
"name": "date",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"journal_entries_user_users_id_fk": {
|
|
||||||
"name": "journal_entries_user_users_id_fk",
|
|
||||||
"tableFrom": "journal_entries",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.profiles": {
|
|
||||||
"name": "profiles",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"user": {
|
|
||||||
"name": "user",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"bio": {
|
|
||||||
"name": "bio",
|
|
||||||
"type": "varchar(1024)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "''"
|
|
||||||
},
|
|
||||||
"website": {
|
|
||||||
"name": "website",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "''"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"profiles_user_users_id_fk": {
|
|
||||||
"name": "profiles_user_users_id_fk",
|
|
||||||
"tableFrom": "profiles",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.updates": {
|
|
||||||
"name": "updates",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"identity": {
|
|
||||||
"type": "always",
|
|
||||||
"name": "updates_id_seq",
|
|
||||||
"schema": "public",
|
|
||||||
"increment": "1",
|
|
||||||
"startWith": "1",
|
|
||||||
"minValue": "1",
|
|
||||||
"maxValue": "2147483647",
|
|
||||||
"cache": "1",
|
|
||||||
"cycle": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"user": {
|
|
||||||
"name": "user",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"mood": {
|
|
||||||
"name": "mood",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": 0
|
|
||||||
},
|
|
||||||
"description": {
|
|
||||||
"name": "description",
|
|
||||||
"type": "varchar(512)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "''"
|
|
||||||
},
|
|
||||||
"date": {
|
|
||||||
"name": "date",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {
|
|
||||||
"updates_user_users_id_fk": {
|
|
||||||
"name": "updates_user_users_id_fk",
|
|
||||||
"tableFrom": "updates",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.users": {
|
|
||||||
"name": "users",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"identity": {
|
|
||||||
"type": "always",
|
|
||||||
"name": "users_id_seq",
|
|
||||||
"schema": "public",
|
|
||||||
"increment": "1",
|
|
||||||
"startWith": "1",
|
|
||||||
"minValue": "1",
|
|
||||||
"maxValue": "2147483647",
|
|
||||||
"cache": "1",
|
|
||||||
"cycle": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"email": {
|
|
||||||
"name": "email",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"name": {
|
|
||||||
"name": "name",
|
|
||||||
"type": "varchar(26)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"pass": {
|
|
||||||
"name": "pass",
|
|
||||||
"type": "varchar(255)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"registered": {
|
|
||||||
"name": "registered",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"moderator": {
|
|
||||||
"name": "moderator",
|
|
||||||
"type": "boolean",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"banned": {
|
|
||||||
"name": "banned",
|
|
||||||
"type": "boolean",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {
|
|
||||||
"users_email_unique": {
|
|
||||||
"name": "users_email_unique",
|
|
||||||
"nullsNotDistinct": false,
|
|
||||||
"columns": [
|
|
||||||
"email"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"users_name_unique": {
|
|
||||||
"name": "users_name_unique",
|
|
||||||
"nullsNotDistinct": false,
|
|
||||||
"columns": [
|
|
||||||
"name"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"enums": {},
|
|
||||||
"schemas": {},
|
|
||||||
"sequences": {},
|
|
||||||
"roles": {},
|
|
||||||
"policies": {},
|
|
||||||
"views": {},
|
|
||||||
"_meta": {
|
|
||||||
"columns": {},
|
|
||||||
"schemas": {},
|
|
||||||
"tables": {}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -5,85 +5,8 @@
|
||||||
{
|
{
|
||||||
"idx": 0,
|
"idx": 0,
|
||||||
"version": "7",
|
"version": "7",
|
||||||
"when": 1731272572767,
|
"when": 1733952034836,
|
||||||
"tag": "0000_aromatic_night_nurse",
|
"tag": "0000_hard_leader",
|
||||||
"breakpoints": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idx": 1,
|
|
||||||
"version": "7",
|
|
||||||
"when": 1731312604109,
|
|
||||||
"tag": "0001_famous_silver_surfer",
|
|
||||||
"breakpoints": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idx": 2,
|
|
||||||
"version": "7",
|
|
||||||
"when": 1731313744748,
|
|
||||||
"tag": "0002_amusing_ultimatum",
|
|
||||||
"breakpoints": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idx": 3,
|
|
||||||
"version": "7",
|
|
||||||
"when": 1731357649095,
|
|
||||||
"tag": "0003_secret_blacklash",
|
|
||||||
"breakpoints": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idx": 4,
|
|
||||||
"version": "7",
|
|
||||||
"when": 1731358040516,
|
|
||||||
"tag": "0004_freezing_warpath",
|
|
||||||
"breakpoints": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idx": 5,
|
|
||||||
"version": "7",
|
|
||||||
"when": 1731393095652,
|
|
||||||
"tag": "0005_magical_swarm",
|
|
||||||
"breakpoints": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idx": 6,
|
|
||||||
"version": "7",
|
|
||||||
"when": 1731868543611,
|
|
||||||
"tag": "0006_lame_grey_gargoyle",
|
|
||||||
"breakpoints": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idx": 7,
|
|
||||||
"version": "7",
|
|
||||||
"when": 1733871933739,
|
|
||||||
"tag": "0007_silly_freak",
|
|
||||||
"breakpoints": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idx": 8,
|
|
||||||
"version": "7",
|
|
||||||
"when": 1733873221416,
|
|
||||||
"tag": "0008_huge_pyro",
|
|
||||||
"breakpoints": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idx": 9,
|
|
||||||
"version": "7",
|
|
||||||
"when": 1733873440944,
|
|
||||||
"tag": "0009_unusual_ozymandias",
|
|
||||||
"breakpoints": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idx": 10,
|
|
||||||
"version": "7",
|
|
||||||
"when": 1733874003964,
|
|
||||||
"tag": "0010_exotic_ted_forrester",
|
|
||||||
"breakpoints": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idx": 11,
|
|
||||||
"version": "7",
|
|
||||||
"when": 1733874202840,
|
|
||||||
"tag": "0011_loose_dreadnoughts",
|
|
||||||
"breakpoints": true
|
"breakpoints": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
4
main.ts
4
main.ts
|
@ -20,7 +20,7 @@ import adminRoutes from "./routes/admin.js";
|
||||||
import loginRoutes from "./routes/login.js";
|
import loginRoutes from "./routes/login.js";
|
||||||
import userRoutes from "./routes/users.js";
|
import userRoutes from "./routes/users.js";
|
||||||
import updateRoutes from "./routes/updates.js";
|
import updateRoutes from "./routes/updates.js";
|
||||||
import { createInviteCode, getMoods, render, setNonce } from "./routes/util.js";
|
import { createInviteCode, getMoods, render, setNonce, UserStatus } from "./routes/util.js";
|
||||||
|
|
||||||
const db = drizzle(process.env.DATABASE_URL!);
|
const db = drizzle(process.env.DATABASE_URL!);
|
||||||
|
|
||||||
|
@ -117,7 +117,7 @@ async function init(app: Express, db: NodePgDatabase) {
|
||||||
const totalUsers = await db.select({ value: count() }).from(users);
|
const totalUsers = await db.select({ value: count() }).from(users);
|
||||||
if (totalUsers[0].value === 0) {
|
if (totalUsers[0].value === 0) {
|
||||||
console.log("There are no users registered. Creating a temporary invite code right now.");
|
console.log("There are no users registered. Creating a temporary invite code right now.");
|
||||||
console.log(" " + await createInviteCode(db, 0, new Date(Date.now() + (1 * 1000 * 60)), true));
|
console.log(" " + await createInviteCode(db, 0, new Date(Date.now() + (1 * 1000 * 60)), UserStatus.MODERATOR));
|
||||||
console.log("This code expires in 1 minute and will confer admin powers to whoever signs up with it.");
|
console.log("This code expires in 1 minute and will confer admin powers to whoever signs up with it.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
11
reset.sh
Executable file
11
reset.sh
Executable file
|
@ -0,0 +1,11 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
sudo systemctl start docker
|
||||||
|
sudo docker container stop postgres
|
||||||
|
sudo docker container rm postgres
|
||||||
|
sudo docker run --name postgres -e POSTGRES_PASSWORD=postgres -d -p 5432:5432 postgres
|
||||||
|
echo "Pausing for one second to give docker time to process what the fuck just happened"
|
||||||
|
sleep 1
|
||||||
|
./node_modules/.bin/drizzle-kit migrate
|
||||||
|
echo
|
||||||
|
echo "Database reset and running"
|
|
@ -1,13 +1,18 @@
|
||||||
import { NodePgDatabase } from "drizzle-orm/node-postgres";
|
import { NodePgDatabase } from "drizzle-orm/node-postgres";
|
||||||
import { Express } from "express";
|
import { Express } from "express";
|
||||||
import { createInviteCode, render } from "./util.js";
|
import { createInviteCode, render, UserStatus } from "./util.js";
|
||||||
import { inviteCodes, users } from "../db/schema.js";
|
import { inviteCodes, users } from "../db/schema.js";
|
||||||
import { desc, eq } from "drizzle-orm";
|
import { and, count, desc, eq, sql } from "drizzle-orm";
|
||||||
import dayjs from "dayjs";
|
import dayjs from "dayjs";
|
||||||
|
|
||||||
|
const USER_REFERRAL_EXPIRATION = 7 * 24 * 60 * 60 * 1000
|
||||||
|
|
||||||
export default function (app: Express, db: NodePgDatabase) {
|
export default function (app: Express, db: NodePgDatabase) {
|
||||||
app.get("/mod", async (req, res) => {
|
app.get("/mod", async (req, res) => {
|
||||||
if (!req.session["loggedIn"] || !req.session["moderator"]) {
|
if (
|
||||||
|
!req.session["loggedIn"] ||
|
||||||
|
!(req.session["status"] & UserStatus.MODERATOR)
|
||||||
|
) {
|
||||||
res.redirect("/");
|
res.redirect("/");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -15,7 +20,11 @@ export default function (app: Express, db: NodePgDatabase) {
|
||||||
const now = dayjs();
|
const now = dayjs();
|
||||||
const codes = (
|
const codes = (
|
||||||
await db
|
await db
|
||||||
.select({ expires: inviteCodes.expires, token: inviteCodes.token, uname: users.name })
|
.select({
|
||||||
|
expires: inviteCodes.expires,
|
||||||
|
token: inviteCodes.token,
|
||||||
|
uname: users.name
|
||||||
|
})
|
||||||
.from(inviteCodes)
|
.from(inviteCodes)
|
||||||
.leftJoin(users, eq(inviteCodes.user, users.id))
|
.leftJoin(users, eq(inviteCodes.user, users.id))
|
||||||
.orderBy(desc(inviteCodes.granted))
|
.orderBy(desc(inviteCodes.granted))
|
||||||
|
@ -30,8 +39,11 @@ export default function (app: Express, db: NodePgDatabase) {
|
||||||
render(db, "admin", "Admin Panel", res, req, { codes });
|
render(db, "admin", "Admin Panel", res, req, { codes });
|
||||||
});
|
});
|
||||||
|
|
||||||
app.post("/mod/codes/delete", async (req, res) => {
|
app.post("/codes/delete", async (req, res) => {
|
||||||
if (!req.session["loggedIn"] || !req.session["moderator"]) {
|
if (
|
||||||
|
!req.session["loggedIn"] ||
|
||||||
|
!(req.session["status"] & UserStatus.MODERATOR)
|
||||||
|
) {
|
||||||
res.redirect("/");
|
res.redirect("/");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -39,10 +51,38 @@ export default function (app: Express, db: NodePgDatabase) {
|
||||||
await db.delete(inviteCodes).where(eq(inviteCodes.token, req.body.token));
|
await db.delete(inviteCodes).where(eq(inviteCodes.token, req.body.token));
|
||||||
req.flash("success", "Deleted.");
|
req.flash("success", "Deleted.");
|
||||||
res.redirect("/mod");
|
res.redirect("/mod");
|
||||||
})
|
});
|
||||||
app.post("/mod/codes/create", async (req, res) => {
|
app.post("/codes/create", async (req, res) => {
|
||||||
if (!req.session["loggedIn"] || !req.session["moderator"]) {
|
if (
|
||||||
res.redirect("/");
|
!req.session["loggedIn"]
|
||||||
|
) {
|
||||||
|
res.redirect("/login");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!(req.session["status"] & UserStatus.MODERATOR)) {
|
||||||
|
const { codesUsed } = (
|
||||||
|
await db
|
||||||
|
.select({ codesUsed: count() })
|
||||||
|
.from(inviteCodes)
|
||||||
|
.where(
|
||||||
|
and(
|
||||||
|
eq(inviteCodes.user, req.session["uid"]),
|
||||||
|
eq(
|
||||||
|
sql`extract(month from granted)`,
|
||||||
|
sql`extract(month from current_date)`
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)[0];
|
||||||
|
if (codesUsed >= 5) {
|
||||||
|
req.flash("error", "You've generated the maximum of five codes this week. Your counter will reset next month.");
|
||||||
|
res.redirect("/dashboard");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const code = await createInviteCode(db, req.session["uid"], new Date(Date.now() + USER_REFERRAL_EXPIRATION));
|
||||||
|
req.flash("success", `Your code has been created as <b>${code}</b>. It expires in a week so use it ASAP!!!`);
|
||||||
|
res.redirect("/dashboard");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,7 @@ export default function(app: Express, db: NodePgDatabase) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// invite code checking
|
// invite code checking
|
||||||
const code = (await db.select({ expires: inviteCodes.expires, confersModerator: inviteCodes.confersModerator }).from(inviteCodes).where(eq(inviteCodes.token, req.body.referral)).limit(1))[0];
|
const code = (await db.select({ expires: inviteCodes.expires, confers: inviteCodes.confers }).from(inviteCodes).where(eq(inviteCodes.token, req.body.referral)).limit(1))[0];
|
||||||
if (!code) {
|
if (!code) {
|
||||||
req.flash("error", "Invalid invite code! Make sure you pasted it in correctly WITH the hyphens.");
|
req.flash("error", "Invalid invite code! Make sure you pasted it in correctly WITH the hyphens.");
|
||||||
res.redirect("/register");
|
res.redirect("/register");
|
||||||
|
@ -94,7 +94,7 @@ export default function(app: Express, db: NodePgDatabase) {
|
||||||
name: req.body.name,
|
name: req.body.name,
|
||||||
email: req.body.email, //! Not actually validating this like at all???
|
email: req.body.email, //! Not actually validating this like at all???
|
||||||
pass: hash,
|
pass: hash,
|
||||||
moderator: code.confersModerator,
|
status: code.confers,
|
||||||
registered: new Date(Date.now())
|
registered: new Date(Date.now())
|
||||||
})
|
})
|
||||||
.returning({ uid: users.id })
|
.returning({ uid: users.id })
|
||||||
|
@ -102,7 +102,7 @@ export default function(app: Express, db: NodePgDatabase) {
|
||||||
await db.insert(profiles).values({ user: uid });
|
await db.insert(profiles).values({ user: uid });
|
||||||
|
|
||||||
req.session["loggedIn"] = true;
|
req.session["loggedIn"] = true;
|
||||||
req.session["moderator"] = code.confersModerator;
|
req.session["status"] = code.confers;
|
||||||
req.session["user"] = req.body.name;
|
req.session["user"] = req.body.name;
|
||||||
req.session["uid"] = uid;
|
req.session["uid"] = uid;
|
||||||
req.flash(
|
req.flash(
|
||||||
|
@ -138,7 +138,7 @@ export default function(app: Express, db: NodePgDatabase) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
req.session["loggedIn"] = true;
|
req.session["loggedIn"] = true;
|
||||||
req.session["moderator"] = user.moderator;
|
req.session["status"] = user.status;
|
||||||
req.session["user"] = user.name;
|
req.session["user"] = user.name;
|
||||||
req.session["uid"] = user.id;
|
req.session["uid"] = user.id;
|
||||||
req.flash("success", "You're logged in! Welcome back!!");
|
req.flash("success", "You're logged in! Welcome back!!");
|
||||||
|
|
|
@ -2,12 +2,13 @@ import { NodePgDatabase } from "drizzle-orm/node-postgres";
|
||||||
import { Express } from "express";
|
import { Express } from "express";
|
||||||
import {
|
import {
|
||||||
follows,
|
follows,
|
||||||
|
inviteCodes,
|
||||||
journalEntries,
|
journalEntries,
|
||||||
profiles,
|
profiles,
|
||||||
updates,
|
updates,
|
||||||
users
|
users
|
||||||
} from "../db/schema.js";
|
} from "../db/schema.js";
|
||||||
import { and, desc, eq } from "drizzle-orm";
|
import { and, count, desc, eq, sql } from "drizzle-orm";
|
||||||
import dayjs from "dayjs";
|
import dayjs from "dayjs";
|
||||||
import { getMoods, render } from "./util.js";
|
import { getMoods, render } from "./util.js";
|
||||||
|
|
||||||
|
@ -72,12 +73,39 @@ export default async function (app: Express, db: NodePgDatabase) {
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// user invite codes
|
||||||
|
const codes = (await db
|
||||||
|
.select({ token: inviteCodes.token, expires: inviteCodes.expires })
|
||||||
|
.from(inviteCodes)
|
||||||
|
.where(eq(inviteCodes.user, req.session["uid"]))).map((e) => {
|
||||||
|
return {
|
||||||
|
token: e.token,
|
||||||
|
expires: now.to(dayjs(e.expires || 0))
|
||||||
|
}
|
||||||
|
});
|
||||||
|
const { codesUsed } = (
|
||||||
|
await db
|
||||||
|
.select({ codesUsed: count() })
|
||||||
|
.from(inviteCodes)
|
||||||
|
.where(
|
||||||
|
and(
|
||||||
|
eq(inviteCodes.user, req.session["uid"]),
|
||||||
|
eq(
|
||||||
|
sql`extract(month from granted)`,
|
||||||
|
sql`extract(month from current_date)`
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)[0];
|
||||||
|
|
||||||
render(db, "dashboard", "Dashboard", res, req, {
|
render(db, "dashboard", "Dashboard", res, req, {
|
||||||
user,
|
user,
|
||||||
moods,
|
moods,
|
||||||
moodsSorted,
|
moodsSorted,
|
||||||
moodHistory,
|
moodHistory,
|
||||||
recentUpdates,
|
recentUpdates,
|
||||||
|
codes,
|
||||||
|
codesUsed,
|
||||||
feed: []
|
feed: []
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -120,6 +148,26 @@ export default async function (app: Express, db: NodePgDatabase) {
|
||||||
app.get("/journal", async (req, res) => {
|
app.get("/journal", async (req, res) => {
|
||||||
render(db, "journal", "Journal", res, req);
|
render(db, "journal", "Journal", res, req);
|
||||||
});
|
});
|
||||||
|
app.get("/journal/:id", async (req, res) => {
|
||||||
|
const entry = (
|
||||||
|
await db
|
||||||
|
.select({
|
||||||
|
uname: users.name,
|
||||||
|
content: journalEntries.entry,
|
||||||
|
date: journalEntries.date
|
||||||
|
})
|
||||||
|
.from(journalEntries)
|
||||||
|
.where(eq(journalEntries.id, parseInt(req.params.id)))
|
||||||
|
.leftJoin(users, eq(journalEntries.user, users.id))
|
||||||
|
)[0];
|
||||||
|
if (!entry) {
|
||||||
|
//! TODO write a 404 page
|
||||||
|
res.statusCode = 404;
|
||||||
|
res.write("404 not found?? :(");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
render(db, "journal_view", "Journal Entry", res, req, { entry });
|
||||||
|
});
|
||||||
app.post("/update/journal", async (req, res) => {
|
app.post("/update/journal", async (req, res) => {
|
||||||
if (!req.session["loggedIn"]) {
|
if (!req.session["loggedIn"]) {
|
||||||
res.redirect("/login");
|
res.redirect("/login");
|
||||||
|
@ -141,21 +189,31 @@ export default async function (app: Express, db: NodePgDatabase) {
|
||||||
|
|
||||||
let id: number;
|
let id: number;
|
||||||
try {
|
try {
|
||||||
// @ts-expect-error
|
const entry = await db
|
||||||
const entry = await db.insert(journalEntries).values({
|
.insert(journalEntries)
|
||||||
user: req.session["uid"],
|
// @ts-expect-error
|
||||||
moodChange,
|
.values({
|
||||||
visibility,
|
user: req.session["uid"],
|
||||||
entry: req.body.description,
|
moodChange,
|
||||||
date: new Date(Date.now())
|
visibility,
|
||||||
}).returning({ id: journalEntries.id });
|
entry: req.body.description,
|
||||||
|
date: new Date(Date.now())
|
||||||
|
})
|
||||||
|
.returning({ id: journalEntries.id });
|
||||||
id = entry[0].id;
|
id = entry[0].id;
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
req.flash("error", "Failed to create your entry. Try again later or send these logs to roxwize so she can know what's up:<br><br>"+err);
|
req.flash(
|
||||||
|
"error",
|
||||||
|
"Failed to create your entry. Try again later or send these logs to roxwize so she can know what's up:<br><br>" +
|
||||||
|
err
|
||||||
|
);
|
||||||
res.redirect("/journal");
|
res.redirect("/journal");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
req.flash("success", `Your journal entry is now available as <a href="/journal/view?id=${id}">#${id}</a>!`);
|
req.flash(
|
||||||
|
"success",
|
||||||
|
`Your journal entry is now available as <a href="/journal/${id}">#${id}</a>!`
|
||||||
|
);
|
||||||
res.redirect("/journal");
|
res.redirect("/journal");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@ import { NodePgDatabase } from "drizzle-orm/node-postgres";
|
||||||
import { Express } from "express";
|
import { Express } from "express";
|
||||||
import { follows, profiles, updates, users } from "../db/schema.js";
|
import { follows, profiles, updates, users } from "../db/schema.js";
|
||||||
import { and, desc, eq } from "drizzle-orm";
|
import { and, desc, eq } from "drizzle-orm";
|
||||||
import { getMoods, render } from "./util.js";
|
import { getMoods, render, UserStatus } from "./util.js";
|
||||||
import { PgColumn } from "drizzle-orm/pg-core";
|
import { PgColumn } from "drizzle-orm/pg-core";
|
||||||
import dayjs from "dayjs";
|
import dayjs from "dayjs";
|
||||||
|
|
||||||
|
@ -88,13 +88,13 @@ export default async function (app: Express, db: NodePgDatabase) {
|
||||||
res.redirect("/login");
|
res.redirect("/login");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const { uname, mod } = (
|
const { uname } = (
|
||||||
await db
|
await db
|
||||||
.select({ uname: users.name, mod: users.moderator })
|
.select({ uname: users.name })
|
||||||
.from(users)
|
.from(users)
|
||||||
.where(eq(users.name, req.params.user))
|
.where(eq(users.name, req.params.user))
|
||||||
)[0];
|
)[0];
|
||||||
if ((uname || "") !== req.session["user"] && !mod) {
|
if ((uname || "") !== req.session["user"] && !(req.session["status"] & UserStatus.MODERATOR)) {
|
||||||
res.redirect("back");
|
res.redirect("back");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,12 @@ import { inviteCodes, updates } from "../db/schema.js";
|
||||||
import { count, desc, eq } from "drizzle-orm";
|
import { count, desc, eq } from "drizzle-orm";
|
||||||
import fs from "node:fs/promises";
|
import fs from "node:fs/promises";
|
||||||
|
|
||||||
|
export enum UserStatus {
|
||||||
|
MODERATOR = 0b001,
|
||||||
|
BANNED = 0b010,
|
||||||
|
TRUSTED = 0b100
|
||||||
|
};
|
||||||
|
|
||||||
const nonceChars =
|
const nonceChars =
|
||||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890-_";
|
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890-_";
|
||||||
let nonce: string;
|
let nonce: string;
|
||||||
|
@ -64,7 +70,7 @@ export async function render(
|
||||||
}
|
}
|
||||||
|
|
||||||
const inviteCodeChars = "abcdefghijklmnopqrstuvwxyz0123456789"
|
const inviteCodeChars = "abcdefghijklmnopqrstuvwxyz0123456789"
|
||||||
export async function createInviteCode(db: NodePgDatabase, user: number, expires: Date, confersModerator = false) {
|
export async function createInviteCode(db: NodePgDatabase, user: number, expires: Date, confers = 0) {
|
||||||
let existingToken = 1, token: string;
|
let existingToken = 1, token: string;
|
||||||
while (existingToken) {
|
while (existingToken) {
|
||||||
token = user.toString().padStart(4, "0") + "-"
|
token = user.toString().padStart(4, "0") + "-"
|
||||||
|
@ -84,7 +90,7 @@ export async function createInviteCode(db: NodePgDatabase, user: number, expires
|
||||||
user: user || undefined,
|
user: user || undefined,
|
||||||
granted: new Date(Date.now()),
|
granted: new Date(Date.now()),
|
||||||
expires,
|
expires,
|
||||||
confersModerator
|
confers
|
||||||
});
|
});
|
||||||
return token;
|
return token;
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -3,7 +3,7 @@ extends site.pug
|
||||||
block content
|
block content
|
||||||
h1 Admin Panel
|
h1 Admin Panel
|
||||||
h2 Invite codes
|
h2 Invite codes
|
||||||
form(action="/mod/codes/delete", method="post")
|
form(action="/codes/delete", method="post")
|
||||||
table
|
table
|
||||||
tbody
|
tbody
|
||||||
tr
|
tr
|
||||||
|
@ -27,6 +27,6 @@ block content
|
||||||
form(action="/mod/codes/prune", method="post")
|
form(action="/mod/codes/prune", method="post")
|
||||||
button(type="submit") Prune
|
button(type="submit") Prune
|
||||||
br
|
br
|
||||||
form(action="/mod/codes/create", method="post")
|
form(action="/codes/create", method="post")
|
||||||
input(type="datetime-local", name="expiration")
|
input(type="datetime-local", name="expiration")
|
||||||
button(type="submit") Create
|
button(type="submit") Create
|
||||||
|
|
|
@ -21,10 +21,10 @@ block page
|
||||||
| #{mood.date}
|
| #{mood.date}
|
||||||
|
|
||||||
block content
|
block content
|
||||||
if user.moderator
|
p
|
||||||
details(style="margin-bottom:1em;")
|
a(href="#feed") Feed
|
||||||
summary Moderation
|
| /
|
||||||
p If you're seeing this, you are part of the exclusive club of moderators! You are now entitled to pizza for the rest of your life! And the ability to ban people and create new moods! For FREE!
|
a(href="#invite-codes") Invite codes
|
||||||
form#dashboard-update-form(action="/update/mood", method="post", onsubmit="disable(this);")
|
form#dashboard-update-form(action="/update/mood", method="post", onsubmit="disable(this);")
|
||||||
select(name="mood", required)
|
select(name="mood", required)
|
||||||
//- Maybe put the index of the mood in the value of the option element
|
//- Maybe put the index of the mood in the value of the option element
|
||||||
|
@ -33,9 +33,32 @@ block content
|
||||||
option= mood
|
option= mood
|
||||||
textarea(name="desc", placeholder="mood description (max 512 chars)", rows="5", maxlength="512")
|
textarea(name="desc", placeholder="mood description (max 512 chars)", rows="5", maxlength="512")
|
||||||
button(type="submit") Update
|
button(type="submit") Update
|
||||||
h1(style="margin-top:0.5em;") Feed
|
|
||||||
|
h1#feed(style="margin-top:0.5em;") Feed
|
||||||
include _feed.pug
|
include _feed.pug
|
||||||
+feed(recentUpdates)
|
+feed(recentUpdates)
|
||||||
|
|
||||||
|
h1#invite-codes(style="margin-top:1em;") Invite codes
|
||||||
|
p Invite your friends to the mipilin beta! You can create up to five invite codes every month, and they all expire within a week.
|
||||||
|
p
|
||||||
|
| Your current invite codes (
|
||||||
|
strong= codesUsed
|
||||||
|
| /5):
|
||||||
|
if codes.length > 0
|
||||||
|
table
|
||||||
|
tbody
|
||||||
|
tr
|
||||||
|
th Token
|
||||||
|
th Expires
|
||||||
|
for code of codes
|
||||||
|
tr
|
||||||
|
td= code.token
|
||||||
|
td= code.expires
|
||||||
|
else
|
||||||
|
.subtle You have no currently active invite codes.
|
||||||
|
br
|
||||||
|
form(action="/codes/create", method="post")
|
||||||
|
button(type="submit", disabled=codesUsed>=5) Generate
|
||||||
script(nonce=nonce).
|
script(nonce=nonce).
|
||||||
function disable(form) {
|
function disable(form) {
|
||||||
const btn = form.querySelector("button");
|
const btn = form.querySelector("button");
|
||||||
|
|
|
@ -6,9 +6,9 @@ block head
|
||||||
|
|
||||||
block page
|
block page
|
||||||
#sidebar
|
#sidebar
|
||||||
h1 MiPilin
|
h1 mipilin
|
||||||
p(style="margin-top:0;")
|
p(style="margin-top:0;")
|
||||||
| Thx for being a part of the MiPilin beta!
|
| Thx for being a part of the mipilin beta!
|
||||||
if session.loggedIn
|
if session.loggedIn
|
||||||
|
|
|
|
||||||
| If you want to change your mood, update your profile, and see how your friends are doing, visit
|
| If you want to change your mood, update your profile, and see how your friends are doing, visit
|
||||||
|
@ -33,7 +33,7 @@ block page
|
||||||
|
|
||||||
block content
|
block content
|
||||||
p
|
p
|
||||||
| Hi, this is MiPilin! It lets you tell your friends how you're feeling, as well as keep a journal of your current mood and their trends over time! Due respect goes to imood, from which I borrowed many ideas and basically all of the moods.
|
| Hi, this is mipilin! It lets you tell your friends how you're feeling, as well as keep a journal of your current mood and their trends over time! Due respect goes to imood, from which I borrowed many ideas and basically all of the moods.
|
||||||
h1 Global Feed
|
h1 Global Feed
|
||||||
p Look at how all these people are doing!!!
|
p Look at how all these people are doing!!!
|
||||||
include _feed.pug
|
include _feed.pug
|
||||||
|
|
13
views/journal_view.pug
Normal file
13
views/journal_view.pug
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
extends site.pug
|
||||||
|
|
||||||
|
block content
|
||||||
|
h1= entry.date.toLocaleDateString()
|
||||||
|
span
|
||||||
|
| by
|
||||||
|
|
|
||||||
|
a(href=`/users/${entry.uname}`)= entry.uname
|
||||||
|
|
|
||||||
|
| at #{entry.date.toLocaleTimeString()}
|
||||||
|
br
|
||||||
|
br
|
||||||
|
div= entry.content
|
|
@ -14,7 +14,7 @@ html(lang="en")
|
||||||
img#header-logo(src="/img/logo.svg", alt="logo")
|
img#header-logo(src="/img/logo.svg", alt="logo")
|
||||||
nav
|
nav
|
||||||
if session.loggedIn
|
if session.loggedIn
|
||||||
if session.moderator
|
if session.status & 0b001
|
||||||
a(href="/mod/") Admin
|
a(href="/mod/") Admin
|
||||||
a(href="/dashboard/") Dashboard
|
a(href="/dashboard/") Dashboard
|
||||||
a(href="/journal/") Journal
|
a(href="/journal/") Journal
|
||||||
|
|
Loading…
Reference in a new issue