feat(api): Add Roles API

This commit is contained in:
Jesse Wierzbinski 2024-06-07 17:31:17 -10:00
parent 46f41199ac
commit 19823d8eca
No known key found for this signature in database
36 changed files with 7851 additions and 1006 deletions

View file

@ -6,14 +6,18 @@ Some more information about the Mastodon API can be found in the [Mastodon API d
## Emoji API ## Emoji API
For administrators. Please read [the documentation](./emojis.md). For client developers. Please read [the documentation](./emojis.md).
## Roles API
For client developers. Please read [the documentation](./roles.md).
## Moderation API ## Moderation API
> [!WARNING] > [!WARNING]
> **Not implemented.** > **Not implemented.**
For administrators. Please read [the documentation](./moderation.md). For client developers. Please read [the documentation](./moderation.md).
## Frontend API ## Frontend API

153
docs/api/roles.md Normal file
View file

@ -0,0 +1,153 @@
# Roles API
The Roles API lets users manage roles given to them by administrators. This API is available to all users.
> [!WARNING]
> The API for **administrators** is different (and unimplemented): this is the API for **users**.
>
> Furthermore, users can only manage roles if they have the `roles` permission, and the role they wish to manage does not have a higher priority than their highest priority role.
## Priorities
Roles have a priority, which determines the order in which they are applied. Roles with higher priorities take precedence over roles with lower priorities.
Additionally, users cannot remove or add roles with a higher priority than their highest priority role.
## Visibility
Roles can be visible or invisible. Invisible roles are not shown to users in the UI, but they can still be managed via the API.
> [!WARNING]
> All roles assigned to a user are public information and can be retrieved via the API. The visibility of a role only affects whether it is shown in the UI, which clients can choose to respect or not.
## Permissions
```ts
// Last updated: 2024-06-07
// Search for "RolePermissions" in the source code (GitHub search bar) for the most up-to-date version
enum RolePermissions {
MANAGE_NOTES = "notes",
MANAGE_OWN_NOTES = "owner:note",
MANAGE_ACCOUNTS = "accounts",
MANAGE_OWN_ACCOUNT = "owner:account",
MANAGE_EMOJIS = "emojis",
MANAGE_OWN_EMOJIS = "owner:emoji",
MANAGE_MEDIA = "media",
MANAGE_OWN_MEDIA = "owner:media",
MANAGE_BLOCKS = "blocks",
MANAGE_OWN_BLOCKS = "owner:block",
MANAGE_FILTERS = "filters",
MANAGE_OWN_FILTERS = "owner:filter",
MANAGE_MUTES = "mutes",
MANAGE_OWN_MUTES = "owner:mute",
MANAGE_REPORTS = "reports",
MANAGE_OWN_REPORTS = "owner:report",
MANAGE_SETTINGS = "settings",
MANAGE_OWN_SETTINGS = "owner:settings",
MANAGE_ROLES = "roles",
IGNORE_RATE_LIMITS = "ignore_rate_limits",
IMPERSONATE = "impersonate",
MANAGE_INSTANCE = "instance",
MANAGE_INSTANCE_FEDERATION = "instance:federation",
MANAGE_INSTANCE_SETTINGS = "instance:settings",
OAUTH = "oauth",
}
```
### Manage Roles
The `roles` permission allows the user to manage roles, including adding and removing roles from themselves. This permission is required to use the Roles API.
### Impersonate
The `impersonate` permission allows the user to impersonate other users (logging in with their credentials). This is a dangerous permission and should be used with caution.
### Manage Instance
The `instance` permission allows the user to manage the instance, including viewing logs, restarting the instance, and more.
### Manage Instance Federation
The `instance:federation` permission allows the user to manage the instance's federation settings, including blocking and unblocking other instances.
### Manage Instance Settings
The `instance:settings` permission allows the user to manage the instance's settings, including changing the instance's name, description, and more.
### OAuth2
The `oauth` permission is required for users to log in to the instance. Users who do not have this permission will not be able to log in.
## Get Roles
```http
GET /api/v1/roles
```
Retrieves a list of roles that the user has.
### Response
```ts
// 200 OK
{
id: string;
name: string;
permissions: RolePermissions[];
priority: number;
description: string | null;
visible: boolean;
icon: string | null
}[];
```
## Get Role
```http
GET /api/v1/roles/:id
```
Retrieves information about a role.
### Response
```ts
// 200 OK
{
id: string;
name: string;
permissions: RolePermissions[];
priority: number;
description: string | null;
visible: boolean;
icon: string | null
}
```
## Add Role
```http
POST /api/v1/roles/:id
```
Adds the role with the given ID to the user making the request.
### Response
```ts
// 204 No Content
```
## Remove Role
```http
DELETE /api/v1/roles/:id
```
Removes the role with the given ID from the user making the request.
### Response
```ts
// 204 No Content
```

View file

@ -0,0 +1,55 @@
CREATE TABLE IF NOT EXISTS "RoleToUsers" (
"roleId" uuid NOT NULL,
"userId" uuid NOT NULL
);
--> statement-breakpoint
CREATE TABLE IF NOT EXISTS "Roles" (
"id" uuid PRIMARY KEY DEFAULT uuid_generate_v7() NOT NULL,
"name" text NOT NULL,
"permissions" text[] NOT NULL,
"priority" integer DEFAULT 0 NOT NULL,
"description" text,
"visible" boolean DEFAULT false NOT NULL,
"icon" text
);
--> statement-breakpoint
DROP INDEX IF EXISTS "Applications_client_id_index";--> statement-breakpoint
DROP INDEX IF EXISTS "EmojiToNote_emojiId_noteId_index";--> statement-breakpoint
DROP INDEX IF EXISTS "EmojiToNote_noteId_index";--> statement-breakpoint
DROP INDEX IF EXISTS "EmojiToUser_emojiId_userId_index";--> statement-breakpoint
DROP INDEX IF EXISTS "EmojiToUser_userId_index";--> statement-breakpoint
DROP INDEX IF EXISTS "LysandObject_remote_id_index";--> statement-breakpoint
DROP INDEX IF EXISTS "LysandObject_uri_index";--> statement-breakpoint
DROP INDEX IF EXISTS "NoteToMentions_noteId_userId_index";--> statement-breakpoint
DROP INDEX IF EXISTS "NoteToMentions_userId_index";--> statement-breakpoint
DROP INDEX IF EXISTS "UserToPinnedNotes_userId_noteId_index";--> statement-breakpoint
DROP INDEX IF EXISTS "UserToPinnedNotes_noteId_index";--> statement-breakpoint
DROP INDEX IF EXISTS "Users_uri_index";--> statement-breakpoint
DROP INDEX IF EXISTS "Users_username_index";--> statement-breakpoint
DROP INDEX IF EXISTS "Users_email_index";--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "RoleToUsers" ADD CONSTRAINT "RoleToUsers_roleId_Roles_id_fk" FOREIGN KEY ("roleId") REFERENCES "public"."Roles"("id") ON DELETE cascade ON UPDATE cascade;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "RoleToUsers" ADD CONSTRAINT "RoleToUsers_userId_Users_id_fk" FOREIGN KEY ("userId") REFERENCES "public"."Users"("id") ON DELETE cascade ON UPDATE cascade;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
CREATE UNIQUE INDEX IF NOT EXISTS "Applications_client_id_index" ON "Applications" USING btree ("client_id");--> statement-breakpoint
CREATE UNIQUE INDEX IF NOT EXISTS "EmojiToNote_emojiId_noteId_index" ON "EmojiToNote" USING btree ("emojiId","noteId");--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "EmojiToNote_noteId_index" ON "EmojiToNote" USING btree ("noteId");--> statement-breakpoint
CREATE UNIQUE INDEX IF NOT EXISTS "EmojiToUser_emojiId_userId_index" ON "EmojiToUser" USING btree ("emojiId","userId");--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "EmojiToUser_userId_index" ON "EmojiToUser" USING btree ("userId");--> statement-breakpoint
CREATE UNIQUE INDEX IF NOT EXISTS "LysandObject_remote_id_index" ON "LysandObject" USING btree ("remote_id");--> statement-breakpoint
CREATE UNIQUE INDEX IF NOT EXISTS "LysandObject_uri_index" ON "LysandObject" USING btree ("uri");--> statement-breakpoint
CREATE UNIQUE INDEX IF NOT EXISTS "NoteToMentions_noteId_userId_index" ON "NoteToMentions" USING btree ("noteId","userId");--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "NoteToMentions_userId_index" ON "NoteToMentions" USING btree ("userId");--> statement-breakpoint
CREATE UNIQUE INDEX IF NOT EXISTS "UserToPinnedNotes_userId_noteId_index" ON "UserToPinnedNotes" USING btree ("userId","noteId");--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "UserToPinnedNotes_noteId_index" ON "UserToPinnedNotes" USING btree ("noteId");--> statement-breakpoint
CREATE UNIQUE INDEX IF NOT EXISTS "Users_uri_index" ON "Users" USING btree ("uri");--> statement-breakpoint
CREATE UNIQUE INDEX IF NOT EXISTS "Users_username_index" ON "Users" USING btree ("username");--> statement-breakpoint
CREATE UNIQUE INDEX IF NOT EXISTS "Users_email_index" ON "Users" USING btree ("email");

View file

@ -1,5 +1,5 @@
{ {
"version": "6", "version": "7",
"dialect": "postgresql", "dialect": "postgresql",
"tables": { "tables": {
"public._prisma_migrations": { "public._prisma_migrations": {
@ -240,14 +240,32 @@
}, },
"indexes": { "indexes": {
"LysandObject_remote_id_key": { "LysandObject_remote_id_key": {
"columns": [
{
"expression": "remote_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_remote_id_key", "name": "LysandObject_remote_id_key",
"columns": ["remote_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"LysandObject_uri_key": { "LysandObject_uri_key": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_uri_key", "name": "LysandObject_uri_key",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -462,9 +480,18 @@
}, },
"indexes": { "indexes": {
"Application_client_id_key": { "Application_client_id_key": {
"columns": [
{
"expression": "client_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Application_client_id_key", "name": "Application_client_id_key",
"columns": ["client_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": {}, "foreignKeys": {},
@ -571,14 +598,38 @@
}, },
"indexes": { "indexes": {
"_EmojiToUser_AB_unique": { "_EmojiToUser_AB_unique": {
"columns": [
{
"expression": "A",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "B",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "_EmojiToUser_AB_unique", "name": "_EmojiToUser_AB_unique",
"columns": ["A", "B"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"_EmojiToUser_B_index": { "_EmojiToUser_B_index": {
"columns": [
{
"expression": "B",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "_EmojiToUser_B_index", "name": "_EmojiToUser_B_index",
"columns": ["B"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -625,14 +676,38 @@
}, },
"indexes": { "indexes": {
"_EmojiToStatus_AB_unique": { "_EmojiToStatus_AB_unique": {
"columns": [
{
"expression": "A",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "B",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "_EmojiToStatus_AB_unique", "name": "_EmojiToStatus_AB_unique",
"columns": ["A", "B"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"_EmojiToStatus_B_index": { "_EmojiToStatus_B_index": {
"columns": [
{
"expression": "B",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "_EmojiToStatus_B_index", "name": "_EmojiToStatus_B_index",
"columns": ["B"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -679,14 +754,38 @@
}, },
"indexes": { "indexes": {
"_StatusToUser_AB_unique": { "_StatusToUser_AB_unique": {
"columns": [
{
"expression": "A",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "B",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "_StatusToUser_AB_unique", "name": "_StatusToUser_AB_unique",
"columns": ["A", "B"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"_StatusToUser_B_index": { "_StatusToUser_B_index": {
"columns": [
{
"expression": "B",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "_StatusToUser_B_index", "name": "_StatusToUser_B_index",
"columns": ["B"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -733,14 +832,38 @@
}, },
"indexes": { "indexes": {
"_UserPinnedNotes_AB_unique": { "_UserPinnedNotes_AB_unique": {
"columns": [
{
"expression": "A",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "B",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "_UserPinnedNotes_AB_unique", "name": "_UserPinnedNotes_AB_unique",
"columns": ["A", "B"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"_UserPinnedNotes_B_index": { "_UserPinnedNotes_B_index": {
"columns": [
{
"expression": "B",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "_UserPinnedNotes_B_index", "name": "_UserPinnedNotes_B_index",
"columns": ["B"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1062,9 +1185,18 @@
}, },
"indexes": { "indexes": {
"Status_uri_key": { "Status_uri_key": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Status_uri_key", "name": "Status_uri_key",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1373,19 +1505,46 @@
}, },
"indexes": { "indexes": {
"User_uri_key": { "User_uri_key": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "User_uri_key", "name": "User_uri_key",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"User_username_key": { "User_username_key": {
"columns": [
{
"expression": "username",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "User_username_key", "name": "User_username_key",
"columns": ["username"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"User_email_key": { "User_email_key": {
"columns": [
{
"expression": "email",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "User_email_key", "name": "User_email_key",
"columns": ["email"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {

View file

@ -1,5 +1,5 @@
{ {
"version": "6", "version": "7",
"dialect": "postgresql", "dialect": "postgresql",
"tables": { "tables": {
"public.Application": { "public.Application": {
@ -58,9 +58,18 @@
}, },
"indexes": { "indexes": {
"Application_client_id_key": { "Application_client_id_key": {
"columns": [
{
"expression": "client_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Application_client_id_key", "name": "Application_client_id_key",
"columns": ["client_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": {}, "foreignKeys": {},
@ -254,14 +263,38 @@
}, },
"indexes": { "indexes": {
"_EmojiToStatus_AB_unique": { "_EmojiToStatus_AB_unique": {
"columns": [
{
"expression": "A",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "B",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "_EmojiToStatus_AB_unique", "name": "_EmojiToStatus_AB_unique",
"columns": ["A", "B"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"_EmojiToStatus_B_index": { "_EmojiToStatus_B_index": {
"columns": [
{
"expression": "B",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "_EmojiToStatus_B_index", "name": "_EmojiToStatus_B_index",
"columns": ["B"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -306,14 +339,38 @@
}, },
"indexes": { "indexes": {
"_EmojiToUser_AB_unique": { "_EmojiToUser_AB_unique": {
"columns": [
{
"expression": "A",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "B",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "_EmojiToUser_AB_unique", "name": "_EmojiToUser_AB_unique",
"columns": ["A", "B"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"_EmojiToUser_B_index": { "_EmojiToUser_B_index": {
"columns": [
{
"expression": "B",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "_EmojiToUser_B_index", "name": "_EmojiToUser_B_index",
"columns": ["B"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -561,14 +618,32 @@
}, },
"indexes": { "indexes": {
"LysandObject_remote_id_key": { "LysandObject_remote_id_key": {
"columns": [
{
"expression": "remote_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_remote_id_key", "name": "LysandObject_remote_id_key",
"columns": ["remote_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"LysandObject_uri_key": { "LysandObject_uri_key": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_uri_key", "name": "LysandObject_uri_key",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1151,9 +1226,18 @@
}, },
"indexes": { "indexes": {
"Status_uri_key": { "Status_uri_key": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Status_uri_key", "name": "Status_uri_key",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1234,14 +1318,38 @@
}, },
"indexes": { "indexes": {
"_StatusToUser_AB_unique": { "_StatusToUser_AB_unique": {
"columns": [
{
"expression": "A",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "B",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "_StatusToUser_AB_unique", "name": "_StatusToUser_AB_unique",
"columns": ["A", "B"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"_StatusToUser_B_index": { "_StatusToUser_B_index": {
"columns": [
{
"expression": "B",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "_StatusToUser_B_index", "name": "_StatusToUser_B_index",
"columns": ["B"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1494,19 +1602,46 @@
}, },
"indexes": { "indexes": {
"User_uri_key": { "User_uri_key": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "User_uri_key", "name": "User_uri_key",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"User_username_key": { "User_username_key": {
"columns": [
{
"expression": "username",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "User_username_key", "name": "User_username_key",
"columns": ["username"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"User_email_key": { "User_email_key": {
"columns": [
{
"expression": "email",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "User_email_key", "name": "User_email_key",
"columns": ["email"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1542,14 +1677,38 @@
}, },
"indexes": { "indexes": {
"_UserPinnedNotes_AB_unique": { "_UserPinnedNotes_AB_unique": {
"columns": [
{
"expression": "A",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "B",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "_UserPinnedNotes_AB_unique", "name": "_UserPinnedNotes_AB_unique",
"columns": ["A", "B"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"_UserPinnedNotes_B_index": { "_UserPinnedNotes_B_index": {
"columns": [
{
"expression": "B",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "_UserPinnedNotes_B_index", "name": "_UserPinnedNotes_B_index",
"columns": ["B"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {

View file

@ -1,5 +1,5 @@
{ {
"version": "6", "version": "7",
"dialect": "postgresql", "dialect": "postgresql",
"tables": { "tables": {
"public.Application": { "public.Application": {
@ -58,9 +58,18 @@
}, },
"indexes": { "indexes": {
"Application_client_id_key": { "Application_client_id_key": {
"columns": [
{
"expression": "client_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Application_client_id_key", "name": "Application_client_id_key",
"columns": ["client_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": {}, "foreignKeys": {},
@ -254,14 +263,38 @@
}, },
"indexes": { "indexes": {
"_EmojiToStatus_AB_unique": { "_EmojiToStatus_AB_unique": {
"columns": [
{
"expression": "A",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "B",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "_EmojiToStatus_AB_unique", "name": "_EmojiToStatus_AB_unique",
"columns": ["A", "B"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"_EmojiToStatus_B_index": { "_EmojiToStatus_B_index": {
"columns": [
{
"expression": "B",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "_EmojiToStatus_B_index", "name": "_EmojiToStatus_B_index",
"columns": ["B"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -306,14 +339,38 @@
}, },
"indexes": { "indexes": {
"_EmojiToUser_AB_unique": { "_EmojiToUser_AB_unique": {
"columns": [
{
"expression": "A",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "B",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "_EmojiToUser_AB_unique", "name": "_EmojiToUser_AB_unique",
"columns": ["A", "B"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"_EmojiToUser_B_index": { "_EmojiToUser_B_index": {
"columns": [
{
"expression": "B",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "_EmojiToUser_B_index", "name": "_EmojiToUser_B_index",
"columns": ["B"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -561,14 +618,32 @@
}, },
"indexes": { "indexes": {
"LysandObject_remote_id_key": { "LysandObject_remote_id_key": {
"columns": [
{
"expression": "remote_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_remote_id_key", "name": "LysandObject_remote_id_key",
"columns": ["remote_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"LysandObject_uri_key": { "LysandObject_uri_key": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_uri_key", "name": "LysandObject_uri_key",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1151,9 +1226,18 @@
}, },
"indexes": { "indexes": {
"Status_uri_key": { "Status_uri_key": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Status_uri_key", "name": "Status_uri_key",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1234,14 +1318,38 @@
}, },
"indexes": { "indexes": {
"StatusToMentions_A_B_index": { "StatusToMentions_A_B_index": {
"columns": [
{
"expression": "A",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "B",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "StatusToMentions_A_B_index", "name": "StatusToMentions_A_B_index",
"columns": ["A", "B"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"StatusToMentions_B_index": { "StatusToMentions_B_index": {
"columns": [
{
"expression": "B",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "StatusToMentions_B_index", "name": "StatusToMentions_B_index",
"columns": ["B"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1494,19 +1602,46 @@
}, },
"indexes": { "indexes": {
"User_uri_key": { "User_uri_key": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "User_uri_key", "name": "User_uri_key",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"User_username_key": { "User_username_key": {
"columns": [
{
"expression": "username",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "User_username_key", "name": "User_username_key",
"columns": ["username"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"User_email_key": { "User_email_key": {
"columns": [
{
"expression": "email",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "User_email_key", "name": "User_email_key",
"columns": ["email"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1542,14 +1677,38 @@
}, },
"indexes": { "indexes": {
"_UserPinnedNotes_AB_unique": { "_UserPinnedNotes_AB_unique": {
"columns": [
{
"expression": "A",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "B",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "_UserPinnedNotes_AB_unique", "name": "_UserPinnedNotes_AB_unique",
"columns": ["A", "B"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"_UserPinnedNotes_B_index": { "_UserPinnedNotes_B_index": {
"columns": [
{
"expression": "B",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "_UserPinnedNotes_B_index", "name": "_UserPinnedNotes_B_index",
"columns": ["B"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {

View file

@ -1,5 +1,5 @@
{ {
"version": "6", "version": "7",
"dialect": "postgresql", "dialect": "postgresql",
"tables": { "tables": {
"public.Application": { "public.Application": {
@ -58,9 +58,18 @@
}, },
"indexes": { "indexes": {
"Application_client_id_key": { "Application_client_id_key": {
"columns": [
{
"expression": "client_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Application_client_id_key", "name": "Application_client_id_key",
"columns": ["client_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": {}, "foreignKeys": {},
@ -254,14 +263,38 @@
}, },
"indexes": { "indexes": {
"_EmojiToStatus_AB_unique": { "_EmojiToStatus_AB_unique": {
"columns": [
{
"expression": "A",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "B",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "_EmojiToStatus_AB_unique", "name": "_EmojiToStatus_AB_unique",
"columns": ["A", "B"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"_EmojiToStatus_B_index": { "_EmojiToStatus_B_index": {
"columns": [
{
"expression": "B",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "_EmojiToStatus_B_index", "name": "_EmojiToStatus_B_index",
"columns": ["B"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -306,14 +339,38 @@
}, },
"indexes": { "indexes": {
"_EmojiToUser_AB_unique": { "_EmojiToUser_AB_unique": {
"columns": [
{
"expression": "A",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "B",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "_EmojiToUser_AB_unique", "name": "_EmojiToUser_AB_unique",
"columns": ["A", "B"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"_EmojiToUser_B_index": { "_EmojiToUser_B_index": {
"columns": [
{
"expression": "B",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "_EmojiToUser_B_index", "name": "_EmojiToUser_B_index",
"columns": ["B"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -561,14 +618,32 @@
}, },
"indexes": { "indexes": {
"LysandObject_remote_id_key": { "LysandObject_remote_id_key": {
"columns": [
{
"expression": "remote_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_remote_id_key", "name": "LysandObject_remote_id_key",
"columns": ["remote_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"LysandObject_uri_key": { "LysandObject_uri_key": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_uri_key", "name": "LysandObject_uri_key",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1151,9 +1226,18 @@
}, },
"indexes": { "indexes": {
"Status_uri_key": { "Status_uri_key": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Status_uri_key", "name": "Status_uri_key",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1234,14 +1318,38 @@
}, },
"indexes": { "indexes": {
"StatusToMentions_statusId_userId_index": { "StatusToMentions_statusId_userId_index": {
"columns": [
{
"expression": "statusId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "StatusToMentions_statusId_userId_index", "name": "StatusToMentions_statusId_userId_index",
"columns": ["statusId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"StatusToMentions_userId_index": { "StatusToMentions_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "StatusToMentions_userId_index", "name": "StatusToMentions_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1494,19 +1602,46 @@
}, },
"indexes": { "indexes": {
"User_uri_key": { "User_uri_key": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "User_uri_key", "name": "User_uri_key",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"User_username_key": { "User_username_key": {
"columns": [
{
"expression": "username",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "User_username_key", "name": "User_username_key",
"columns": ["username"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"User_email_key": { "User_email_key": {
"columns": [
{
"expression": "email",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "User_email_key", "name": "User_email_key",
"columns": ["email"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1542,14 +1677,38 @@
}, },
"indexes": { "indexes": {
"_UserPinnedNotes_AB_unique": { "_UserPinnedNotes_AB_unique": {
"columns": [
{
"expression": "A",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "B",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "_UserPinnedNotes_AB_unique", "name": "_UserPinnedNotes_AB_unique",
"columns": ["A", "B"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"_UserPinnedNotes_B_index": { "_UserPinnedNotes_B_index": {
"columns": [
{
"expression": "B",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "_UserPinnedNotes_B_index", "name": "_UserPinnedNotes_B_index",
"columns": ["B"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {

View file

@ -1,5 +1,5 @@
{ {
"version": "6", "version": "7",
"dialect": "postgresql", "dialect": "postgresql",
"tables": { "tables": {
"public.Application": { "public.Application": {
@ -58,9 +58,18 @@
}, },
"indexes": { "indexes": {
"Application_client_id_key": { "Application_client_id_key": {
"columns": [
{
"expression": "client_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Application_client_id_key", "name": "Application_client_id_key",
"columns": ["client_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": {}, "foreignKeys": {},
@ -254,14 +263,38 @@
}, },
"indexes": { "indexes": {
"EmojiToStatus_emojiId_statusId_index": { "EmojiToStatus_emojiId_statusId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "statusId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToStatus_emojiId_statusId_index", "name": "EmojiToStatus_emojiId_statusId_index",
"columns": ["emojiId", "statusId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToStatus_statusId_index": { "EmojiToStatus_statusId_index": {
"columns": [
{
"expression": "statusId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToStatus_statusId_index", "name": "EmojiToStatus_statusId_index",
"columns": ["statusId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -306,14 +339,38 @@
}, },
"indexes": { "indexes": {
"_EmojiToUser_AB_unique": { "_EmojiToUser_AB_unique": {
"columns": [
{
"expression": "A",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "B",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "_EmojiToUser_AB_unique", "name": "_EmojiToUser_AB_unique",
"columns": ["A", "B"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"_EmojiToUser_B_index": { "_EmojiToUser_B_index": {
"columns": [
{
"expression": "B",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "_EmojiToUser_B_index", "name": "_EmojiToUser_B_index",
"columns": ["B"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -561,14 +618,32 @@
}, },
"indexes": { "indexes": {
"LysandObject_remote_id_index": { "LysandObject_remote_id_index": {
"columns": [
{
"expression": "remote_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_remote_id_index", "name": "LysandObject_remote_id_index",
"columns": ["remote_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"LysandObject_uri_index": { "LysandObject_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_uri_index", "name": "LysandObject_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1151,9 +1226,18 @@
}, },
"indexes": { "indexes": {
"Status_uri_key": { "Status_uri_key": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Status_uri_key", "name": "Status_uri_key",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1234,14 +1318,38 @@
}, },
"indexes": { "indexes": {
"StatusToMentions_statusId_userId_index": { "StatusToMentions_statusId_userId_index": {
"columns": [
{
"expression": "statusId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "StatusToMentions_statusId_userId_index", "name": "StatusToMentions_statusId_userId_index",
"columns": ["statusId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"StatusToMentions_userId_index": { "StatusToMentions_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "StatusToMentions_userId_index", "name": "StatusToMentions_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1494,19 +1602,46 @@
}, },
"indexes": { "indexes": {
"User_uri_key": { "User_uri_key": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "User_uri_key", "name": "User_uri_key",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"User_username_key": { "User_username_key": {
"columns": [
{
"expression": "username",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "User_username_key", "name": "User_username_key",
"columns": ["username"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"User_email_key": { "User_email_key": {
"columns": [
{
"expression": "email",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "User_email_key", "name": "User_email_key",
"columns": ["email"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1542,14 +1677,38 @@
}, },
"indexes": { "indexes": {
"UserToPinnedNotes_userId_statusId_index": { "UserToPinnedNotes_userId_statusId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "statusId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_userId_statusId_index", "name": "UserToPinnedNotes_userId_statusId_index",
"columns": ["userId", "statusId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"UserToPinnedNotes_statusId_index": { "UserToPinnedNotes_statusId_index": {
"columns": [
{
"expression": "statusId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_statusId_index", "name": "UserToPinnedNotes_statusId_index",
"columns": ["statusId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {

View file

@ -1,5 +1,5 @@
{ {
"version": "6", "version": "7",
"dialect": "postgresql", "dialect": "postgresql",
"tables": { "tables": {
"public.Application": { "public.Application": {
@ -58,9 +58,18 @@
}, },
"indexes": { "indexes": {
"Application_client_id_index": { "Application_client_id_index": {
"columns": [
{
"expression": "client_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Application_client_id_index", "name": "Application_client_id_index",
"columns": ["client_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": {}, "foreignKeys": {},
@ -254,14 +263,38 @@
}, },
"indexes": { "indexes": {
"EmojiToStatus_emojiId_statusId_index": { "EmojiToStatus_emojiId_statusId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "statusId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToStatus_emojiId_statusId_index", "name": "EmojiToStatus_emojiId_statusId_index",
"columns": ["emojiId", "statusId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToStatus_statusId_index": { "EmojiToStatus_statusId_index": {
"columns": [
{
"expression": "statusId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToStatus_statusId_index", "name": "EmojiToStatus_statusId_index",
"columns": ["statusId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -306,14 +339,38 @@
}, },
"indexes": { "indexes": {
"_EmojiToUser_AB_unique": { "_EmojiToUser_AB_unique": {
"columns": [
{
"expression": "A",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "B",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "_EmojiToUser_AB_unique", "name": "_EmojiToUser_AB_unique",
"columns": ["A", "B"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"_EmojiToUser_B_index": { "_EmojiToUser_B_index": {
"columns": [
{
"expression": "B",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "_EmojiToUser_B_index", "name": "_EmojiToUser_B_index",
"columns": ["B"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -561,14 +618,32 @@
}, },
"indexes": { "indexes": {
"LysandObject_remote_id_index": { "LysandObject_remote_id_index": {
"columns": [
{
"expression": "remote_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_remote_id_index", "name": "LysandObject_remote_id_index",
"columns": ["remote_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"LysandObject_uri_index": { "LysandObject_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_uri_index", "name": "LysandObject_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1153,9 +1228,18 @@
}, },
"indexes": { "indexes": {
"Status_uri_index": { "Status_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Status_uri_index", "name": "Status_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1236,14 +1320,38 @@
}, },
"indexes": { "indexes": {
"StatusToMentions_statusId_userId_index": { "StatusToMentions_statusId_userId_index": {
"columns": [
{
"expression": "statusId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "StatusToMentions_statusId_userId_index", "name": "StatusToMentions_statusId_userId_index",
"columns": ["statusId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"StatusToMentions_userId_index": { "StatusToMentions_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "StatusToMentions_userId_index", "name": "StatusToMentions_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1496,19 +1604,46 @@
}, },
"indexes": { "indexes": {
"User_uri_key": { "User_uri_key": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "User_uri_key", "name": "User_uri_key",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"User_username_key": { "User_username_key": {
"columns": [
{
"expression": "username",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "User_username_key", "name": "User_username_key",
"columns": ["username"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"User_email_key": { "User_email_key": {
"columns": [
{
"expression": "email",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "User_email_key", "name": "User_email_key",
"columns": ["email"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1544,14 +1679,38 @@
}, },
"indexes": { "indexes": {
"UserToPinnedNotes_userId_statusId_index": { "UserToPinnedNotes_userId_statusId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "statusId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_userId_statusId_index", "name": "UserToPinnedNotes_userId_statusId_index",
"columns": ["userId", "statusId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"UserToPinnedNotes_statusId_index": { "UserToPinnedNotes_statusId_index": {
"columns": [
{
"expression": "statusId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_statusId_index", "name": "UserToPinnedNotes_statusId_index",
"columns": ["statusId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {

View file

@ -1,5 +1,5 @@
{ {
"version": "6", "version": "7",
"dialect": "postgresql", "dialect": "postgresql",
"tables": { "tables": {
"public.Application": { "public.Application": {
@ -58,9 +58,18 @@
}, },
"indexes": { "indexes": {
"Application_client_id_index": { "Application_client_id_index": {
"columns": [
{
"expression": "client_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Application_client_id_index", "name": "Application_client_id_index",
"columns": ["client_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": {}, "foreignKeys": {},
@ -254,14 +263,38 @@
}, },
"indexes": { "indexes": {
"EmojiToStatus_emojiId_statusId_index": { "EmojiToStatus_emojiId_statusId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "statusId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToStatus_emojiId_statusId_index", "name": "EmojiToStatus_emojiId_statusId_index",
"columns": ["emojiId", "statusId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToStatus_statusId_index": { "EmojiToStatus_statusId_index": {
"columns": [
{
"expression": "statusId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToStatus_statusId_index", "name": "EmojiToStatus_statusId_index",
"columns": ["statusId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -306,14 +339,38 @@
}, },
"indexes": { "indexes": {
"EmojiToUser_emojiId_userId_index": { "EmojiToUser_emojiId_userId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_emojiId_userId_index", "name": "EmojiToUser_emojiId_userId_index",
"columns": ["emojiId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToUser_userId_index": { "EmojiToUser_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_userId_index", "name": "EmojiToUser_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -561,14 +618,32 @@
}, },
"indexes": { "indexes": {
"LysandObject_remote_id_index": { "LysandObject_remote_id_index": {
"columns": [
{
"expression": "remote_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_remote_id_index", "name": "LysandObject_remote_id_index",
"columns": ["remote_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"LysandObject_uri_index": { "LysandObject_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_uri_index", "name": "LysandObject_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1153,9 +1228,18 @@
}, },
"indexes": { "indexes": {
"Status_uri_index": { "Status_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Status_uri_index", "name": "Status_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1236,14 +1320,38 @@
}, },
"indexes": { "indexes": {
"StatusToMentions_statusId_userId_index": { "StatusToMentions_statusId_userId_index": {
"columns": [
{
"expression": "statusId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "StatusToMentions_statusId_userId_index", "name": "StatusToMentions_statusId_userId_index",
"columns": ["statusId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"StatusToMentions_userId_index": { "StatusToMentions_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "StatusToMentions_userId_index", "name": "StatusToMentions_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1496,19 +1604,46 @@
}, },
"indexes": { "indexes": {
"User_uri_index": { "User_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "User_uri_index", "name": "User_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"User_username_index": { "User_username_index": {
"columns": [
{
"expression": "username",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "User_username_index", "name": "User_username_index",
"columns": ["username"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"User_email_index": { "User_email_index": {
"columns": [
{
"expression": "email",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "User_email_index", "name": "User_email_index",
"columns": ["email"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1544,14 +1679,38 @@
}, },
"indexes": { "indexes": {
"UserToPinnedNotes_userId_statusId_index": { "UserToPinnedNotes_userId_statusId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "statusId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_userId_statusId_index", "name": "UserToPinnedNotes_userId_statusId_index",
"columns": ["userId", "statusId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"UserToPinnedNotes_statusId_index": { "UserToPinnedNotes_statusId_index": {
"columns": [
{
"expression": "statusId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_statusId_index", "name": "UserToPinnedNotes_statusId_index",
"columns": ["statusId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {

View file

@ -1,5 +1,5 @@
{ {
"version": "6", "version": "7",
"dialect": "postgresql", "dialect": "postgresql",
"tables": { "tables": {
"public.Application": { "public.Application": {
@ -58,9 +58,18 @@
}, },
"indexes": { "indexes": {
"Application_client_id_index": { "Application_client_id_index": {
"columns": [
{
"expression": "client_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Application_client_id_index", "name": "Application_client_id_index",
"columns": ["client_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": {}, "foreignKeys": {},
@ -254,14 +263,38 @@
}, },
"indexes": { "indexes": {
"EmojiToStatus_emojiId_statusId_index": { "EmojiToStatus_emojiId_statusId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "statusId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToStatus_emojiId_statusId_index", "name": "EmojiToStatus_emojiId_statusId_index",
"columns": ["emojiId", "statusId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToStatus_statusId_index": { "EmojiToStatus_statusId_index": {
"columns": [
{
"expression": "statusId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToStatus_statusId_index", "name": "EmojiToStatus_statusId_index",
"columns": ["statusId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -306,14 +339,38 @@
}, },
"indexes": { "indexes": {
"EmojiToUser_emojiId_userId_index": { "EmojiToUser_emojiId_userId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_emojiId_userId_index", "name": "EmojiToUser_emojiId_userId_index",
"columns": ["emojiId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToUser_userId_index": { "EmojiToUser_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_userId_index", "name": "EmojiToUser_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -561,14 +618,32 @@
}, },
"indexes": { "indexes": {
"LysandObject_remote_id_index": { "LysandObject_remote_id_index": {
"columns": [
{
"expression": "remote_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_remote_id_index", "name": "LysandObject_remote_id_index",
"columns": ["remote_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"LysandObject_uri_index": { "LysandObject_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_uri_index", "name": "LysandObject_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1147,9 +1222,18 @@
}, },
"indexes": { "indexes": {
"Status_uri_index": { "Status_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Status_uri_index", "name": "Status_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1221,14 +1305,38 @@
}, },
"indexes": { "indexes": {
"StatusToMentions_statusId_userId_index": { "StatusToMentions_statusId_userId_index": {
"columns": [
{
"expression": "statusId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "StatusToMentions_statusId_userId_index", "name": "StatusToMentions_statusId_userId_index",
"columns": ["statusId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"StatusToMentions_userId_index": { "StatusToMentions_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "StatusToMentions_userId_index", "name": "StatusToMentions_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1481,19 +1589,46 @@
}, },
"indexes": { "indexes": {
"User_uri_index": { "User_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "User_uri_index", "name": "User_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"User_username_index": { "User_username_index": {
"columns": [
{
"expression": "username",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "User_username_index", "name": "User_username_index",
"columns": ["username"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"User_email_index": { "User_email_index": {
"columns": [
{
"expression": "email",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "User_email_index", "name": "User_email_index",
"columns": ["email"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1529,14 +1664,38 @@
}, },
"indexes": { "indexes": {
"UserToPinnedNotes_userId_statusId_index": { "UserToPinnedNotes_userId_statusId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "statusId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_userId_statusId_index", "name": "UserToPinnedNotes_userId_statusId_index",
"columns": ["userId", "statusId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"UserToPinnedNotes_statusId_index": { "UserToPinnedNotes_statusId_index": {
"columns": [
{
"expression": "statusId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_statusId_index", "name": "UserToPinnedNotes_statusId_index",
"columns": ["statusId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {

View file

@ -1,5 +1,5 @@
{ {
"version": "6", "version": "7",
"dialect": "postgresql", "dialect": "postgresql",
"tables": { "tables": {
"public.Application": { "public.Application": {
@ -58,9 +58,18 @@
}, },
"indexes": { "indexes": {
"Application_client_id_index": { "Application_client_id_index": {
"columns": [
{
"expression": "client_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Application_client_id_index", "name": "Application_client_id_index",
"columns": ["client_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": {}, "foreignKeys": {},
@ -254,14 +263,38 @@
}, },
"indexes": { "indexes": {
"EmojiToStatus_emojiId_statusId_index": { "EmojiToStatus_emojiId_statusId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "statusId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToStatus_emojiId_statusId_index", "name": "EmojiToStatus_emojiId_statusId_index",
"columns": ["emojiId", "statusId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToStatus_statusId_index": { "EmojiToStatus_statusId_index": {
"columns": [
{
"expression": "statusId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToStatus_statusId_index", "name": "EmojiToStatus_statusId_index",
"columns": ["statusId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -306,14 +339,38 @@
}, },
"indexes": { "indexes": {
"EmojiToUser_emojiId_userId_index": { "EmojiToUser_emojiId_userId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_emojiId_userId_index", "name": "EmojiToUser_emojiId_userId_index",
"columns": ["emojiId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToUser_userId_index": { "EmojiToUser_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_userId_index", "name": "EmojiToUser_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -561,14 +618,32 @@
}, },
"indexes": { "indexes": {
"LysandObject_remote_id_index": { "LysandObject_remote_id_index": {
"columns": [
{
"expression": "remote_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_remote_id_index", "name": "LysandObject_remote_id_index",
"columns": ["remote_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"LysandObject_uri_index": { "LysandObject_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_uri_index", "name": "LysandObject_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1154,9 +1229,18 @@
}, },
"indexes": { "indexes": {
"Status_uri_index": { "Status_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Status_uri_index", "name": "Status_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1228,14 +1312,38 @@
}, },
"indexes": { "indexes": {
"StatusToMentions_statusId_userId_index": { "StatusToMentions_statusId_userId_index": {
"columns": [
{
"expression": "statusId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "StatusToMentions_statusId_userId_index", "name": "StatusToMentions_statusId_userId_index",
"columns": ["statusId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"StatusToMentions_userId_index": { "StatusToMentions_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "StatusToMentions_userId_index", "name": "StatusToMentions_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1488,19 +1596,46 @@
}, },
"indexes": { "indexes": {
"User_uri_index": { "User_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "User_uri_index", "name": "User_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"User_username_index": { "User_username_index": {
"columns": [
{
"expression": "username",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "User_username_index", "name": "User_username_index",
"columns": ["username"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"User_email_index": { "User_email_index": {
"columns": [
{
"expression": "email",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "User_email_index", "name": "User_email_index",
"columns": ["email"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1536,14 +1671,38 @@
}, },
"indexes": { "indexes": {
"UserToPinnedNotes_userId_statusId_index": { "UserToPinnedNotes_userId_statusId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "statusId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_userId_statusId_index", "name": "UserToPinnedNotes_userId_statusId_index",
"columns": ["userId", "statusId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"UserToPinnedNotes_statusId_index": { "UserToPinnedNotes_statusId_index": {
"columns": [
{
"expression": "statusId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_statusId_index", "name": "UserToPinnedNotes_statusId_index",
"columns": ["statusId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {

View file

@ -1,5 +1,5 @@
{ {
"version": "6", "version": "7",
"dialect": "postgresql", "dialect": "postgresql",
"tables": { "tables": {
"public.Applications": { "public.Applications": {
@ -58,9 +58,18 @@
}, },
"indexes": { "indexes": {
"Applications_client_id_index": { "Applications_client_id_index": {
"columns": [
{
"expression": "client_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Applications_client_id_index", "name": "Applications_client_id_index",
"columns": ["client_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": {}, "foreignKeys": {},
@ -254,14 +263,38 @@
}, },
"indexes": { "indexes": {
"EmojiToNote_emojiId_noteId_index": { "EmojiToNote_emojiId_noteId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToNote_emojiId_noteId_index", "name": "EmojiToNote_emojiId_noteId_index",
"columns": ["emojiId", "noteId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToNote_noteId_index": { "EmojiToNote_noteId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToNote_noteId_index", "name": "EmojiToNote_noteId_index",
"columns": ["noteId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -306,14 +339,38 @@
}, },
"indexes": { "indexes": {
"EmojiToUser_emojiId_userId_index": { "EmojiToUser_emojiId_userId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_emojiId_userId_index", "name": "EmojiToUser_emojiId_userId_index",
"columns": ["emojiId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToUser_userId_index": { "EmojiToUser_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_userId_index", "name": "EmojiToUser_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -561,14 +618,32 @@
}, },
"indexes": { "indexes": {
"LysandObject_remote_id_index": { "LysandObject_remote_id_index": {
"columns": [
{
"expression": "remote_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_remote_id_index", "name": "LysandObject_remote_id_index",
"columns": ["remote_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"LysandObject_uri_index": { "LysandObject_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_uri_index", "name": "LysandObject_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1154,9 +1229,18 @@
}, },
"indexes": { "indexes": {
"Notes_uri_index": { "Notes_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Notes_uri_index", "name": "Notes_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1228,14 +1312,38 @@
}, },
"indexes": { "indexes": {
"NoteToMentions_noteId_userId_index": { "NoteToMentions_noteId_userId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "NoteToMentions_noteId_userId_index", "name": "NoteToMentions_noteId_userId_index",
"columns": ["noteId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"NoteToMentions_userId_index": { "NoteToMentions_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "NoteToMentions_userId_index", "name": "NoteToMentions_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1488,19 +1596,46 @@
}, },
"indexes": { "indexes": {
"Users_uri_index": { "Users_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_uri_index", "name": "Users_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"Users_username_index": { "Users_username_index": {
"columns": [
{
"expression": "username",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_username_index", "name": "Users_username_index",
"columns": ["username"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"Users_email_index": { "Users_email_index": {
"columns": [
{
"expression": "email",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_email_index", "name": "Users_email_index",
"columns": ["email"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1536,14 +1671,38 @@
}, },
"indexes": { "indexes": {
"UserToPinnedNotes_userId_noteId_index": { "UserToPinnedNotes_userId_noteId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_userId_noteId_index", "name": "UserToPinnedNotes_userId_noteId_index",
"columns": ["userId", "noteId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"UserToPinnedNotes_noteId_index": { "UserToPinnedNotes_noteId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_noteId_index", "name": "UserToPinnedNotes_noteId_index",
"columns": ["noteId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {

View file

@ -1,5 +1,5 @@
{ {
"version": "6", "version": "7",
"dialect": "postgresql", "dialect": "postgresql",
"tables": { "tables": {
"public.Applications": { "public.Applications": {
@ -58,9 +58,18 @@
}, },
"indexes": { "indexes": {
"Applications_client_id_index": { "Applications_client_id_index": {
"columns": [
{
"expression": "client_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Applications_client_id_index", "name": "Applications_client_id_index",
"columns": ["client_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": {}, "foreignKeys": {},
@ -254,14 +263,38 @@
}, },
"indexes": { "indexes": {
"EmojiToNote_emojiId_noteId_index": { "EmojiToNote_emojiId_noteId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToNote_emojiId_noteId_index", "name": "EmojiToNote_emojiId_noteId_index",
"columns": ["emojiId", "noteId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToNote_noteId_index": { "EmojiToNote_noteId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToNote_noteId_index", "name": "EmojiToNote_noteId_index",
"columns": ["noteId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -306,14 +339,38 @@
}, },
"indexes": { "indexes": {
"EmojiToUser_emojiId_userId_index": { "EmojiToUser_emojiId_userId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_emojiId_userId_index", "name": "EmojiToUser_emojiId_userId_index",
"columns": ["emojiId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToUser_userId_index": { "EmojiToUser_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_userId_index", "name": "EmojiToUser_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -561,14 +618,32 @@
}, },
"indexes": { "indexes": {
"LysandObject_remote_id_index": { "LysandObject_remote_id_index": {
"columns": [
{
"expression": "remote_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_remote_id_index", "name": "LysandObject_remote_id_index",
"columns": ["remote_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"LysandObject_uri_index": { "LysandObject_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_uri_index", "name": "LysandObject_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1154,9 +1229,18 @@
}, },
"indexes": { "indexes": {
"Notes_uri_index": { "Notes_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Notes_uri_index", "name": "Notes_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1228,14 +1312,38 @@
}, },
"indexes": { "indexes": {
"NoteToMentions_noteId_userId_index": { "NoteToMentions_noteId_userId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "NoteToMentions_noteId_userId_index", "name": "NoteToMentions_noteId_userId_index",
"columns": ["noteId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"NoteToMentions_userId_index": { "NoteToMentions_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "NoteToMentions_userId_index", "name": "NoteToMentions_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1488,19 +1596,46 @@
}, },
"indexes": { "indexes": {
"Users_uri_index": { "Users_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_uri_index", "name": "Users_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"Users_username_index": { "Users_username_index": {
"columns": [
{
"expression": "username",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_username_index", "name": "Users_username_index",
"columns": ["username"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"Users_email_index": { "Users_email_index": {
"columns": [
{
"expression": "email",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_email_index", "name": "Users_email_index",
"columns": ["email"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1536,14 +1671,38 @@
}, },
"indexes": { "indexes": {
"UserToPinnedNotes_userId_noteId_index": { "UserToPinnedNotes_userId_noteId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_userId_noteId_index", "name": "UserToPinnedNotes_userId_noteId_index",
"columns": ["userId", "noteId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"UserToPinnedNotes_noteId_index": { "UserToPinnedNotes_noteId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_noteId_index", "name": "UserToPinnedNotes_noteId_index",
"columns": ["noteId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {

View file

@ -1,5 +1,5 @@
{ {
"version": "6", "version": "7",
"dialect": "postgresql", "dialect": "postgresql",
"tables": { "tables": {
"public.Applications": { "public.Applications": {
@ -58,9 +58,18 @@
}, },
"indexes": { "indexes": {
"Applications_client_id_index": { "Applications_client_id_index": {
"columns": [
{
"expression": "client_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Applications_client_id_index", "name": "Applications_client_id_index",
"columns": ["client_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": {}, "foreignKeys": {},
@ -191,14 +200,38 @@
}, },
"indexes": { "indexes": {
"EmojiToNote_emojiId_noteId_index": { "EmojiToNote_emojiId_noteId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToNote_emojiId_noteId_index", "name": "EmojiToNote_emojiId_noteId_index",
"columns": ["emojiId", "noteId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToNote_noteId_index": { "EmojiToNote_noteId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToNote_noteId_index", "name": "EmojiToNote_noteId_index",
"columns": ["noteId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -243,14 +276,38 @@
}, },
"indexes": { "indexes": {
"EmojiToUser_emojiId_userId_index": { "EmojiToUser_emojiId_userId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_emojiId_userId_index", "name": "EmojiToUser_emojiId_userId_index",
"columns": ["emojiId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToUser_userId_index": { "EmojiToUser_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_userId_index", "name": "EmojiToUser_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -561,14 +618,32 @@
}, },
"indexes": { "indexes": {
"LysandObject_remote_id_index": { "LysandObject_remote_id_index": {
"columns": [
{
"expression": "remote_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_remote_id_index", "name": "LysandObject_remote_id_index",
"columns": ["remote_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"LysandObject_uri_index": { "LysandObject_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_uri_index", "name": "LysandObject_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -756,14 +831,38 @@
}, },
"indexes": { "indexes": {
"NoteToMentions_noteId_userId_index": { "NoteToMentions_noteId_userId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "NoteToMentions_noteId_userId_index", "name": "NoteToMentions_noteId_userId_index",
"columns": ["noteId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"NoteToMentions_userId_index": { "NoteToMentions_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "NoteToMentions_userId_index", "name": "NoteToMentions_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -893,9 +992,18 @@
}, },
"indexes": { "indexes": {
"Notes_uri_index": { "Notes_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Notes_uri_index", "name": "Notes_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1359,14 +1467,38 @@
}, },
"indexes": { "indexes": {
"UserToPinnedNotes_userId_noteId_index": { "UserToPinnedNotes_userId_noteId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_userId_noteId_index", "name": "UserToPinnedNotes_userId_noteId_index",
"columns": ["userId", "noteId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"UserToPinnedNotes_noteId_index": { "UserToPinnedNotes_noteId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_noteId_index", "name": "UserToPinnedNotes_noteId_index",
"columns": ["noteId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1540,19 +1672,46 @@
}, },
"indexes": { "indexes": {
"Users_uri_index": { "Users_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_uri_index", "name": "Users_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"Users_username_index": { "Users_username_index": {
"columns": [
{
"expression": "username",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_username_index", "name": "Users_username_index",
"columns": ["username"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"Users_email_index": { "Users_email_index": {
"columns": [
{
"expression": "email",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_email_index", "name": "Users_email_index",
"columns": ["email"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {

View file

@ -1,5 +1,5 @@
{ {
"version": "6", "version": "7",
"dialect": "postgresql", "dialect": "postgresql",
"tables": { "tables": {
"public.Applications": { "public.Applications": {
@ -58,9 +58,18 @@
}, },
"indexes": { "indexes": {
"Applications_client_id_index": { "Applications_client_id_index": {
"columns": [
{
"expression": "client_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Applications_client_id_index", "name": "Applications_client_id_index",
"columns": ["client_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": {}, "foreignKeys": {},
@ -191,14 +200,38 @@
}, },
"indexes": { "indexes": {
"EmojiToNote_emojiId_noteId_index": { "EmojiToNote_emojiId_noteId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToNote_emojiId_noteId_index", "name": "EmojiToNote_emojiId_noteId_index",
"columns": ["emojiId", "noteId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToNote_noteId_index": { "EmojiToNote_noteId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToNote_noteId_index", "name": "EmojiToNote_noteId_index",
"columns": ["noteId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -243,14 +276,38 @@
}, },
"indexes": { "indexes": {
"EmojiToUser_emojiId_userId_index": { "EmojiToUser_emojiId_userId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_emojiId_userId_index", "name": "EmojiToUser_emojiId_userId_index",
"columns": ["emojiId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToUser_userId_index": { "EmojiToUser_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_userId_index", "name": "EmojiToUser_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -561,14 +618,32 @@
}, },
"indexes": { "indexes": {
"LysandObject_remote_id_index": { "LysandObject_remote_id_index": {
"columns": [
{
"expression": "remote_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_remote_id_index", "name": "LysandObject_remote_id_index",
"columns": ["remote_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"LysandObject_uri_index": { "LysandObject_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_uri_index", "name": "LysandObject_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -817,14 +892,38 @@
}, },
"indexes": { "indexes": {
"NoteToMentions_noteId_userId_index": { "NoteToMentions_noteId_userId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "NoteToMentions_noteId_userId_index", "name": "NoteToMentions_noteId_userId_index",
"columns": ["noteId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"NoteToMentions_userId_index": { "NoteToMentions_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "NoteToMentions_userId_index", "name": "NoteToMentions_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -954,9 +1053,18 @@
}, },
"indexes": { "indexes": {
"Notes_uri_index": { "Notes_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Notes_uri_index", "name": "Notes_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1420,14 +1528,38 @@
}, },
"indexes": { "indexes": {
"UserToPinnedNotes_userId_noteId_index": { "UserToPinnedNotes_userId_noteId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_userId_noteId_index", "name": "UserToPinnedNotes_userId_noteId_index",
"columns": ["userId", "noteId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"UserToPinnedNotes_noteId_index": { "UserToPinnedNotes_noteId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_noteId_index", "name": "UserToPinnedNotes_noteId_index",
"columns": ["noteId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1601,19 +1733,46 @@
}, },
"indexes": { "indexes": {
"Users_uri_index": { "Users_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_uri_index", "name": "Users_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"Users_username_index": { "Users_username_index": {
"columns": [
{
"expression": "username",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_username_index", "name": "Users_username_index",
"columns": ["username"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"Users_email_index": { "Users_email_index": {
"columns": [
{
"expression": "email",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_email_index", "name": "Users_email_index",
"columns": ["email"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {

View file

@ -1,5 +1,5 @@
{ {
"version": "6", "version": "7",
"dialect": "postgresql", "dialect": "postgresql",
"tables": { "tables": {
"public.Applications": { "public.Applications": {
@ -58,9 +58,18 @@
}, },
"indexes": { "indexes": {
"Applications_client_id_index": { "Applications_client_id_index": {
"columns": [
{
"expression": "client_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Applications_client_id_index", "name": "Applications_client_id_index",
"columns": ["client_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": {}, "foreignKeys": {},
@ -191,14 +200,38 @@
}, },
"indexes": { "indexes": {
"EmojiToNote_emojiId_noteId_index": { "EmojiToNote_emojiId_noteId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToNote_emojiId_noteId_index", "name": "EmojiToNote_emojiId_noteId_index",
"columns": ["emojiId", "noteId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToNote_noteId_index": { "EmojiToNote_noteId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToNote_noteId_index", "name": "EmojiToNote_noteId_index",
"columns": ["noteId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -243,14 +276,38 @@
}, },
"indexes": { "indexes": {
"EmojiToUser_emojiId_userId_index": { "EmojiToUser_emojiId_userId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_emojiId_userId_index", "name": "EmojiToUser_emojiId_userId_index",
"columns": ["emojiId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToUser_userId_index": { "EmojiToUser_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_userId_index", "name": "EmojiToUser_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -561,14 +618,32 @@
}, },
"indexes": { "indexes": {
"LysandObject_remote_id_index": { "LysandObject_remote_id_index": {
"columns": [
{
"expression": "remote_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_remote_id_index", "name": "LysandObject_remote_id_index",
"columns": ["remote_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"LysandObject_uri_index": { "LysandObject_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_uri_index", "name": "LysandObject_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -832,14 +907,38 @@
}, },
"indexes": { "indexes": {
"NoteToMentions_noteId_userId_index": { "NoteToMentions_noteId_userId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "NoteToMentions_noteId_userId_index", "name": "NoteToMentions_noteId_userId_index",
"columns": ["noteId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"NoteToMentions_userId_index": { "NoteToMentions_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "NoteToMentions_userId_index", "name": "NoteToMentions_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -969,9 +1068,18 @@
}, },
"indexes": { "indexes": {
"Notes_uri_index": { "Notes_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Notes_uri_index", "name": "Notes_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1435,14 +1543,38 @@
}, },
"indexes": { "indexes": {
"UserToPinnedNotes_userId_noteId_index": { "UserToPinnedNotes_userId_noteId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_userId_noteId_index", "name": "UserToPinnedNotes_userId_noteId_index",
"columns": ["userId", "noteId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"UserToPinnedNotes_noteId_index": { "UserToPinnedNotes_noteId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_noteId_index", "name": "UserToPinnedNotes_noteId_index",
"columns": ["noteId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1616,19 +1748,46 @@
}, },
"indexes": { "indexes": {
"Users_uri_index": { "Users_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_uri_index", "name": "Users_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"Users_username_index": { "Users_username_index": {
"columns": [
{
"expression": "username",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_username_index", "name": "Users_username_index",
"columns": ["username"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"Users_email_index": { "Users_email_index": {
"columns": [
{
"expression": "email",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_email_index", "name": "Users_email_index",
"columns": ["email"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {

View file

@ -1,5 +1,5 @@
{ {
"version": "6", "version": "7",
"dialect": "postgresql", "dialect": "postgresql",
"tables": { "tables": {
"public.Applications": { "public.Applications": {
@ -58,9 +58,18 @@
}, },
"indexes": { "indexes": {
"Applications_client_id_index": { "Applications_client_id_index": {
"columns": [
{
"expression": "client_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Applications_client_id_index", "name": "Applications_client_id_index",
"columns": ["client_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": {}, "foreignKeys": {},
@ -191,14 +200,38 @@
}, },
"indexes": { "indexes": {
"EmojiToNote_emojiId_noteId_index": { "EmojiToNote_emojiId_noteId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToNote_emojiId_noteId_index", "name": "EmojiToNote_emojiId_noteId_index",
"columns": ["emojiId", "noteId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToNote_noteId_index": { "EmojiToNote_noteId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToNote_noteId_index", "name": "EmojiToNote_noteId_index",
"columns": ["noteId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -243,14 +276,38 @@
}, },
"indexes": { "indexes": {
"EmojiToUser_emojiId_userId_index": { "EmojiToUser_emojiId_userId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_emojiId_userId_index", "name": "EmojiToUser_emojiId_userId_index",
"columns": ["emojiId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToUser_userId_index": { "EmojiToUser_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_userId_index", "name": "EmojiToUser_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -670,14 +727,32 @@
}, },
"indexes": { "indexes": {
"LysandObject_remote_id_index": { "LysandObject_remote_id_index": {
"columns": [
{
"expression": "remote_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_remote_id_index", "name": "LysandObject_remote_id_index",
"columns": ["remote_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"LysandObject_uri_index": { "LysandObject_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_uri_index", "name": "LysandObject_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -941,14 +1016,38 @@
}, },
"indexes": { "indexes": {
"NoteToMentions_noteId_userId_index": { "NoteToMentions_noteId_userId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "NoteToMentions_noteId_userId_index", "name": "NoteToMentions_noteId_userId_index",
"columns": ["noteId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"NoteToMentions_userId_index": { "NoteToMentions_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "NoteToMentions_userId_index", "name": "NoteToMentions_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1078,9 +1177,18 @@
}, },
"indexes": { "indexes": {
"Notes_uri_index": { "Notes_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Notes_uri_index", "name": "Notes_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1544,14 +1652,38 @@
}, },
"indexes": { "indexes": {
"UserToPinnedNotes_userId_noteId_index": { "UserToPinnedNotes_userId_noteId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_userId_noteId_index", "name": "UserToPinnedNotes_userId_noteId_index",
"columns": ["userId", "noteId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"UserToPinnedNotes_noteId_index": { "UserToPinnedNotes_noteId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_noteId_index", "name": "UserToPinnedNotes_noteId_index",
"columns": ["noteId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1725,19 +1857,46 @@
}, },
"indexes": { "indexes": {
"Users_uri_index": { "Users_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_uri_index", "name": "Users_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"Users_username_index": { "Users_username_index": {
"columns": [
{
"expression": "username",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_username_index", "name": "Users_username_index",
"columns": ["username"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"Users_email_index": { "Users_email_index": {
"columns": [
{
"expression": "email",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_email_index", "name": "Users_email_index",
"columns": ["email"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {

View file

@ -1,5 +1,5 @@
{ {
"version": "6", "version": "7",
"dialect": "postgresql", "dialect": "postgresql",
"tables": { "tables": {
"public.Applications": { "public.Applications": {
@ -58,9 +58,18 @@
}, },
"indexes": { "indexes": {
"Applications_client_id_index": { "Applications_client_id_index": {
"columns": [
{
"expression": "client_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Applications_client_id_index", "name": "Applications_client_id_index",
"columns": ["client_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": {}, "foreignKeys": {},
@ -191,14 +200,38 @@
}, },
"indexes": { "indexes": {
"EmojiToNote_emojiId_noteId_index": { "EmojiToNote_emojiId_noteId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToNote_emojiId_noteId_index", "name": "EmojiToNote_emojiId_noteId_index",
"columns": ["emojiId", "noteId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToNote_noteId_index": { "EmojiToNote_noteId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToNote_noteId_index", "name": "EmojiToNote_noteId_index",
"columns": ["noteId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -243,14 +276,38 @@
}, },
"indexes": { "indexes": {
"EmojiToUser_emojiId_userId_index": { "EmojiToUser_emojiId_userId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_emojiId_userId_index", "name": "EmojiToUser_emojiId_userId_index",
"columns": ["emojiId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToUser_userId_index": { "EmojiToUser_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_userId_index", "name": "EmojiToUser_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -670,14 +727,32 @@
}, },
"indexes": { "indexes": {
"LysandObject_remote_id_index": { "LysandObject_remote_id_index": {
"columns": [
{
"expression": "remote_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_remote_id_index", "name": "LysandObject_remote_id_index",
"columns": ["remote_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"LysandObject_uri_index": { "LysandObject_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_uri_index", "name": "LysandObject_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -941,14 +1016,38 @@
}, },
"indexes": { "indexes": {
"NoteToMentions_noteId_userId_index": { "NoteToMentions_noteId_userId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "NoteToMentions_noteId_userId_index", "name": "NoteToMentions_noteId_userId_index",
"columns": ["noteId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"NoteToMentions_userId_index": { "NoteToMentions_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "NoteToMentions_userId_index", "name": "NoteToMentions_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1078,9 +1177,18 @@
}, },
"indexes": { "indexes": {
"Notes_uri_index": { "Notes_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Notes_uri_index", "name": "Notes_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1544,14 +1652,38 @@
}, },
"indexes": { "indexes": {
"UserToPinnedNotes_userId_noteId_index": { "UserToPinnedNotes_userId_noteId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_userId_noteId_index", "name": "UserToPinnedNotes_userId_noteId_index",
"columns": ["userId", "noteId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"UserToPinnedNotes_noteId_index": { "UserToPinnedNotes_noteId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_noteId_index", "name": "UserToPinnedNotes_noteId_index",
"columns": ["noteId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1725,19 +1857,46 @@
}, },
"indexes": { "indexes": {
"Users_uri_index": { "Users_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_uri_index", "name": "Users_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"Users_username_index": { "Users_username_index": {
"columns": [
{
"expression": "username",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_username_index", "name": "Users_username_index",
"columns": ["username"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"Users_email_index": { "Users_email_index": {
"columns": [
{
"expression": "email",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_email_index", "name": "Users_email_index",
"columns": ["email"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {

View file

@ -1,5 +1,5 @@
{ {
"version": "6", "version": "7",
"dialect": "postgresql", "dialect": "postgresql",
"tables": { "tables": {
"public.Applications": { "public.Applications": {
@ -58,9 +58,18 @@
}, },
"indexes": { "indexes": {
"Applications_client_id_index": { "Applications_client_id_index": {
"columns": [
{
"expression": "client_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Applications_client_id_index", "name": "Applications_client_id_index",
"columns": ["client_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": {}, "foreignKeys": {},
@ -191,14 +200,38 @@
}, },
"indexes": { "indexes": {
"EmojiToNote_emojiId_noteId_index": { "EmojiToNote_emojiId_noteId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToNote_emojiId_noteId_index", "name": "EmojiToNote_emojiId_noteId_index",
"columns": ["emojiId", "noteId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToNote_noteId_index": { "EmojiToNote_noteId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToNote_noteId_index", "name": "EmojiToNote_noteId_index",
"columns": ["noteId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -243,14 +276,38 @@
}, },
"indexes": { "indexes": {
"EmojiToUser_emojiId_userId_index": { "EmojiToUser_emojiId_userId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_emojiId_userId_index", "name": "EmojiToUser_emojiId_userId_index",
"columns": ["emojiId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToUser_userId_index": { "EmojiToUser_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_userId_index", "name": "EmojiToUser_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -670,14 +727,32 @@
}, },
"indexes": { "indexes": {
"LysandObject_remote_id_index": { "LysandObject_remote_id_index": {
"columns": [
{
"expression": "remote_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_remote_id_index", "name": "LysandObject_remote_id_index",
"columns": ["remote_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"LysandObject_uri_index": { "LysandObject_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_uri_index", "name": "LysandObject_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -941,14 +1016,38 @@
}, },
"indexes": { "indexes": {
"NoteToMentions_noteId_userId_index": { "NoteToMentions_noteId_userId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "NoteToMentions_noteId_userId_index", "name": "NoteToMentions_noteId_userId_index",
"columns": ["noteId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"NoteToMentions_userId_index": { "NoteToMentions_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "NoteToMentions_userId_index", "name": "NoteToMentions_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1078,9 +1177,18 @@
}, },
"indexes": { "indexes": {
"Notes_uri_index": { "Notes_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Notes_uri_index", "name": "Notes_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1558,14 +1666,38 @@
}, },
"indexes": { "indexes": {
"UserToPinnedNotes_userId_noteId_index": { "UserToPinnedNotes_userId_noteId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_userId_noteId_index", "name": "UserToPinnedNotes_userId_noteId_index",
"columns": ["userId", "noteId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"UserToPinnedNotes_noteId_index": { "UserToPinnedNotes_noteId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_noteId_index", "name": "UserToPinnedNotes_noteId_index",
"columns": ["noteId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1739,19 +1871,46 @@
}, },
"indexes": { "indexes": {
"Users_uri_index": { "Users_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_uri_index", "name": "Users_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"Users_username_index": { "Users_username_index": {
"columns": [
{
"expression": "username",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_username_index", "name": "Users_username_index",
"columns": ["username"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"Users_email_index": { "Users_email_index": {
"columns": [
{
"expression": "email",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_email_index", "name": "Users_email_index",
"columns": ["email"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {

View file

@ -1,5 +1,5 @@
{ {
"version": "6", "version": "7",
"dialect": "postgresql", "dialect": "postgresql",
"tables": { "tables": {
"public.Applications": { "public.Applications": {
@ -58,9 +58,18 @@
}, },
"indexes": { "indexes": {
"Applications_client_id_index": { "Applications_client_id_index": {
"columns": [
{
"expression": "client_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Applications_client_id_index", "name": "Applications_client_id_index",
"columns": ["client_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": {}, "foreignKeys": {},
@ -191,14 +200,38 @@
}, },
"indexes": { "indexes": {
"EmojiToNote_emojiId_noteId_index": { "EmojiToNote_emojiId_noteId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToNote_emojiId_noteId_index", "name": "EmojiToNote_emojiId_noteId_index",
"columns": ["emojiId", "noteId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToNote_noteId_index": { "EmojiToNote_noteId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToNote_noteId_index", "name": "EmojiToNote_noteId_index",
"columns": ["noteId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -243,14 +276,38 @@
}, },
"indexes": { "indexes": {
"EmojiToUser_emojiId_userId_index": { "EmojiToUser_emojiId_userId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_emojiId_userId_index", "name": "EmojiToUser_emojiId_userId_index",
"columns": ["emojiId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToUser_userId_index": { "EmojiToUser_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_userId_index", "name": "EmojiToUser_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -670,14 +727,32 @@
}, },
"indexes": { "indexes": {
"LysandObject_remote_id_index": { "LysandObject_remote_id_index": {
"columns": [
{
"expression": "remote_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_remote_id_index", "name": "LysandObject_remote_id_index",
"columns": ["remote_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"LysandObject_uri_index": { "LysandObject_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_uri_index", "name": "LysandObject_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -941,14 +1016,38 @@
}, },
"indexes": { "indexes": {
"NoteToMentions_noteId_userId_index": { "NoteToMentions_noteId_userId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "NoteToMentions_noteId_userId_index", "name": "NoteToMentions_noteId_userId_index",
"columns": ["noteId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"NoteToMentions_userId_index": { "NoteToMentions_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "NoteToMentions_userId_index", "name": "NoteToMentions_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1078,9 +1177,18 @@
}, },
"indexes": { "indexes": {
"Notes_uri_index": { "Notes_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Notes_uri_index", "name": "Notes_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1562,14 +1670,38 @@
}, },
"indexes": { "indexes": {
"UserToPinnedNotes_userId_noteId_index": { "UserToPinnedNotes_userId_noteId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_userId_noteId_index", "name": "UserToPinnedNotes_userId_noteId_index",
"columns": ["userId", "noteId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"UserToPinnedNotes_noteId_index": { "UserToPinnedNotes_noteId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_noteId_index", "name": "UserToPinnedNotes_noteId_index",
"columns": ["noteId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1743,19 +1875,46 @@
}, },
"indexes": { "indexes": {
"Users_uri_index": { "Users_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_uri_index", "name": "Users_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"Users_username_index": { "Users_username_index": {
"columns": [
{
"expression": "username",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_username_index", "name": "Users_username_index",
"columns": ["username"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"Users_email_index": { "Users_email_index": {
"columns": [
{
"expression": "email",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_email_index", "name": "Users_email_index",
"columns": ["email"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {

View file

@ -1,5 +1,5 @@
{ {
"version": "6", "version": "7",
"dialect": "postgresql", "dialect": "postgresql",
"tables": { "tables": {
"public.Applications": { "public.Applications": {
@ -58,9 +58,18 @@
}, },
"indexes": { "indexes": {
"Applications_client_id_index": { "Applications_client_id_index": {
"columns": [
{
"expression": "client_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Applications_client_id_index", "name": "Applications_client_id_index",
"columns": ["client_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": {}, "foreignKeys": {},
@ -191,14 +200,38 @@
}, },
"indexes": { "indexes": {
"EmojiToNote_emojiId_noteId_index": { "EmojiToNote_emojiId_noteId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToNote_emojiId_noteId_index", "name": "EmojiToNote_emojiId_noteId_index",
"columns": ["emojiId", "noteId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToNote_noteId_index": { "EmojiToNote_noteId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToNote_noteId_index", "name": "EmojiToNote_noteId_index",
"columns": ["noteId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -243,14 +276,38 @@
}, },
"indexes": { "indexes": {
"EmojiToUser_emojiId_userId_index": { "EmojiToUser_emojiId_userId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_emojiId_userId_index", "name": "EmojiToUser_emojiId_userId_index",
"columns": ["emojiId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToUser_userId_index": { "EmojiToUser_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_userId_index", "name": "EmojiToUser_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -670,14 +727,32 @@
}, },
"indexes": { "indexes": {
"LysandObject_remote_id_index": { "LysandObject_remote_id_index": {
"columns": [
{
"expression": "remote_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_remote_id_index", "name": "LysandObject_remote_id_index",
"columns": ["remote_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"LysandObject_uri_index": { "LysandObject_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_uri_index", "name": "LysandObject_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -941,14 +1016,38 @@
}, },
"indexes": { "indexes": {
"NoteToMentions_noteId_userId_index": { "NoteToMentions_noteId_userId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "NoteToMentions_noteId_userId_index", "name": "NoteToMentions_noteId_userId_index",
"columns": ["noteId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"NoteToMentions_userId_index": { "NoteToMentions_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "NoteToMentions_userId_index", "name": "NoteToMentions_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1078,9 +1177,18 @@
}, },
"indexes": { "indexes": {
"Notes_uri_index": { "Notes_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Notes_uri_index", "name": "Notes_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1564,14 +1672,38 @@
}, },
"indexes": { "indexes": {
"UserToPinnedNotes_userId_noteId_index": { "UserToPinnedNotes_userId_noteId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_userId_noteId_index", "name": "UserToPinnedNotes_userId_noteId_index",
"columns": ["userId", "noteId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"UserToPinnedNotes_noteId_index": { "UserToPinnedNotes_noteId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_noteId_index", "name": "UserToPinnedNotes_noteId_index",
"columns": ["noteId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1745,19 +1877,46 @@
}, },
"indexes": { "indexes": {
"Users_uri_index": { "Users_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_uri_index", "name": "Users_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"Users_username_index": { "Users_username_index": {
"columns": [
{
"expression": "username",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_username_index", "name": "Users_username_index",
"columns": ["username"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"Users_email_index": { "Users_email_index": {
"columns": [
{
"expression": "email",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_email_index", "name": "Users_email_index",
"columns": ["email"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {

View file

@ -1,5 +1,5 @@
{ {
"version": "6", "version": "7",
"dialect": "postgresql", "dialect": "postgresql",
"tables": { "tables": {
"public.Applications": { "public.Applications": {
@ -58,9 +58,18 @@
}, },
"indexes": { "indexes": {
"Applications_client_id_index": { "Applications_client_id_index": {
"columns": [
{
"expression": "client_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Applications_client_id_index", "name": "Applications_client_id_index",
"columns": ["client_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": {}, "foreignKeys": {},
@ -191,14 +200,38 @@
}, },
"indexes": { "indexes": {
"EmojiToNote_emojiId_noteId_index": { "EmojiToNote_emojiId_noteId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToNote_emojiId_noteId_index", "name": "EmojiToNote_emojiId_noteId_index",
"columns": ["emojiId", "noteId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToNote_noteId_index": { "EmojiToNote_noteId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToNote_noteId_index", "name": "EmojiToNote_noteId_index",
"columns": ["noteId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -243,14 +276,38 @@
}, },
"indexes": { "indexes": {
"EmojiToUser_emojiId_userId_index": { "EmojiToUser_emojiId_userId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_emojiId_userId_index", "name": "EmojiToUser_emojiId_userId_index",
"columns": ["emojiId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToUser_userId_index": { "EmojiToUser_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_userId_index", "name": "EmojiToUser_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -670,14 +727,32 @@
}, },
"indexes": { "indexes": {
"LysandObject_remote_id_index": { "LysandObject_remote_id_index": {
"columns": [
{
"expression": "remote_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_remote_id_index", "name": "LysandObject_remote_id_index",
"columns": ["remote_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"LysandObject_uri_index": { "LysandObject_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_uri_index", "name": "LysandObject_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -941,14 +1016,38 @@
}, },
"indexes": { "indexes": {
"NoteToMentions_noteId_userId_index": { "NoteToMentions_noteId_userId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "NoteToMentions_noteId_userId_index", "name": "NoteToMentions_noteId_userId_index",
"columns": ["noteId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"NoteToMentions_userId_index": { "NoteToMentions_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "NoteToMentions_userId_index", "name": "NoteToMentions_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1078,9 +1177,18 @@
}, },
"indexes": { "indexes": {
"Notes_uri_index": { "Notes_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Notes_uri_index", "name": "Notes_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1570,14 +1678,38 @@
}, },
"indexes": { "indexes": {
"UserToPinnedNotes_userId_noteId_index": { "UserToPinnedNotes_userId_noteId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_userId_noteId_index", "name": "UserToPinnedNotes_userId_noteId_index",
"columns": ["userId", "noteId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"UserToPinnedNotes_noteId_index": { "UserToPinnedNotes_noteId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_noteId_index", "name": "UserToPinnedNotes_noteId_index",
"columns": ["noteId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1751,19 +1883,46 @@
}, },
"indexes": { "indexes": {
"Users_uri_index": { "Users_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_uri_index", "name": "Users_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"Users_username_index": { "Users_username_index": {
"columns": [
{
"expression": "username",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_username_index", "name": "Users_username_index",
"columns": ["username"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"Users_email_index": { "Users_email_index": {
"columns": [
{
"expression": "email",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_email_index", "name": "Users_email_index",
"columns": ["email"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {

View file

@ -1,5 +1,5 @@
{ {
"version": "6", "version": "7",
"dialect": "postgresql", "dialect": "postgresql",
"tables": { "tables": {
"public.Applications": { "public.Applications": {
@ -58,9 +58,18 @@
}, },
"indexes": { "indexes": {
"Applications_client_id_index": { "Applications_client_id_index": {
"columns": [
{
"expression": "client_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Applications_client_id_index", "name": "Applications_client_id_index",
"columns": ["client_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": {}, "foreignKeys": {},
@ -191,14 +200,38 @@
}, },
"indexes": { "indexes": {
"EmojiToNote_emojiId_noteId_index": { "EmojiToNote_emojiId_noteId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToNote_emojiId_noteId_index", "name": "EmojiToNote_emojiId_noteId_index",
"columns": ["emojiId", "noteId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToNote_noteId_index": { "EmojiToNote_noteId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToNote_noteId_index", "name": "EmojiToNote_noteId_index",
"columns": ["noteId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -243,14 +276,38 @@
}, },
"indexes": { "indexes": {
"EmojiToUser_emojiId_userId_index": { "EmojiToUser_emojiId_userId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_emojiId_userId_index", "name": "EmojiToUser_emojiId_userId_index",
"columns": ["emojiId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToUser_userId_index": { "EmojiToUser_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_userId_index", "name": "EmojiToUser_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -670,14 +727,32 @@
}, },
"indexes": { "indexes": {
"LysandObject_remote_id_index": { "LysandObject_remote_id_index": {
"columns": [
{
"expression": "remote_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_remote_id_index", "name": "LysandObject_remote_id_index",
"columns": ["remote_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"LysandObject_uri_index": { "LysandObject_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_uri_index", "name": "LysandObject_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -941,14 +1016,38 @@
}, },
"indexes": { "indexes": {
"NoteToMentions_noteId_userId_index": { "NoteToMentions_noteId_userId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "NoteToMentions_noteId_userId_index", "name": "NoteToMentions_noteId_userId_index",
"columns": ["noteId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"NoteToMentions_userId_index": { "NoteToMentions_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "NoteToMentions_userId_index", "name": "NoteToMentions_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1078,9 +1177,18 @@
}, },
"indexes": { "indexes": {
"Notes_uri_index": { "Notes_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Notes_uri_index", "name": "Notes_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1570,14 +1678,38 @@
}, },
"indexes": { "indexes": {
"UserToPinnedNotes_userId_noteId_index": { "UserToPinnedNotes_userId_noteId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_userId_noteId_index", "name": "UserToPinnedNotes_userId_noteId_index",
"columns": ["userId", "noteId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"UserToPinnedNotes_noteId_index": { "UserToPinnedNotes_noteId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_noteId_index", "name": "UserToPinnedNotes_noteId_index",
"columns": ["noteId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1758,19 +1890,46 @@
}, },
"indexes": { "indexes": {
"Users_uri_index": { "Users_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_uri_index", "name": "Users_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"Users_username_index": { "Users_username_index": {
"columns": [
{
"expression": "username",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_username_index", "name": "Users_username_index",
"columns": ["username"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"Users_email_index": { "Users_email_index": {
"columns": [
{
"expression": "email",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_email_index", "name": "Users_email_index",
"columns": ["email"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {

View file

@ -1,5 +1,5 @@
{ {
"version": "6", "version": "7",
"dialect": "postgresql", "dialect": "postgresql",
"tables": { "tables": {
"public.Applications": { "public.Applications": {
@ -58,9 +58,18 @@
}, },
"indexes": { "indexes": {
"Applications_client_id_index": { "Applications_client_id_index": {
"columns": [
{
"expression": "client_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Applications_client_id_index", "name": "Applications_client_id_index",
"columns": ["client_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": {}, "foreignKeys": {},
@ -191,14 +200,38 @@
}, },
"indexes": { "indexes": {
"EmojiToNote_emojiId_noteId_index": { "EmojiToNote_emojiId_noteId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToNote_emojiId_noteId_index", "name": "EmojiToNote_emojiId_noteId_index",
"columns": ["emojiId", "noteId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToNote_noteId_index": { "EmojiToNote_noteId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToNote_noteId_index", "name": "EmojiToNote_noteId_index",
"columns": ["noteId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -243,14 +276,38 @@
}, },
"indexes": { "indexes": {
"EmojiToUser_emojiId_userId_index": { "EmojiToUser_emojiId_userId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_emojiId_userId_index", "name": "EmojiToUser_emojiId_userId_index",
"columns": ["emojiId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToUser_userId_index": { "EmojiToUser_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_userId_index", "name": "EmojiToUser_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -670,14 +727,32 @@
}, },
"indexes": { "indexes": {
"LysandObject_remote_id_index": { "LysandObject_remote_id_index": {
"columns": [
{
"expression": "remote_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_remote_id_index", "name": "LysandObject_remote_id_index",
"columns": ["remote_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"LysandObject_uri_index": { "LysandObject_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_uri_index", "name": "LysandObject_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -941,14 +1016,38 @@
}, },
"indexes": { "indexes": {
"NoteToMentions_noteId_userId_index": { "NoteToMentions_noteId_userId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "NoteToMentions_noteId_userId_index", "name": "NoteToMentions_noteId_userId_index",
"columns": ["noteId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"NoteToMentions_userId_index": { "NoteToMentions_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "NoteToMentions_userId_index", "name": "NoteToMentions_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1570,14 +1669,38 @@
}, },
"indexes": { "indexes": {
"UserToPinnedNotes_userId_noteId_index": { "UserToPinnedNotes_userId_noteId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_userId_noteId_index", "name": "UserToPinnedNotes_userId_noteId_index",
"columns": ["userId", "noteId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"UserToPinnedNotes_noteId_index": { "UserToPinnedNotes_noteId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_noteId_index", "name": "UserToPinnedNotes_noteId_index",
"columns": ["noteId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
@ -1758,19 +1881,46 @@
}, },
"indexes": { "indexes": {
"Users_uri_index": { "Users_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_uri_index", "name": "Users_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"Users_username_index": { "Users_username_index": {
"columns": [
{
"expression": "username",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_username_index", "name": "Users_username_index",
"columns": ["username"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"Users_email_index": { "Users_email_index": {
"columns": [
{
"expression": "email",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_email_index", "name": "Users_email_index",
"columns": ["email"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {

View file

@ -1,7 +1,5 @@
{ {
"id": "2ebf1bd7-ed30-4e28-aa35-091c4cec896c", "version": "7",
"prevId": "44e89287-856b-4cc8-bee0-fb394522b01c",
"version": "6",
"dialect": "postgresql", "dialect": "postgresql",
"tables": { "tables": {
"public.Applications": { "public.Applications": {
@ -60,9 +58,18 @@
}, },
"indexes": { "indexes": {
"Applications_client_id_index": { "Applications_client_id_index": {
"columns": [
{
"expression": "client_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Applications_client_id_index", "name": "Applications_client_id_index",
"columns": ["client_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": {}, "foreignKeys": {},
@ -164,11 +171,11 @@
"Attachments_noteId_Notes_id_fk": { "Attachments_noteId_Notes_id_fk": {
"name": "Attachments_noteId_Notes_id_fk", "name": "Attachments_noteId_Notes_id_fk",
"tableFrom": "Attachments", "tableFrom": "Attachments",
"tableTo": "Notes",
"columnsFrom": ["noteId"], "columnsFrom": ["noteId"],
"tableTo": "Notes",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -193,34 +200,58 @@
}, },
"indexes": { "indexes": {
"EmojiToNote_emojiId_noteId_index": { "EmojiToNote_emojiId_noteId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToNote_emojiId_noteId_index", "name": "EmojiToNote_emojiId_noteId_index",
"columns": ["emojiId", "noteId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToNote_noteId_index": { "EmojiToNote_noteId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToNote_noteId_index", "name": "EmojiToNote_noteId_index",
"columns": ["noteId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
"EmojiToNote_emojiId_Emojis_id_fk": { "EmojiToNote_emojiId_Emojis_id_fk": {
"name": "EmojiToNote_emojiId_Emojis_id_fk", "name": "EmojiToNote_emojiId_Emojis_id_fk",
"tableFrom": "EmojiToNote", "tableFrom": "EmojiToNote",
"tableTo": "Emojis",
"columnsFrom": ["emojiId"], "columnsFrom": ["emojiId"],
"tableTo": "Emojis",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"EmojiToNote_noteId_Notes_id_fk": { "EmojiToNote_noteId_Notes_id_fk": {
"name": "EmojiToNote_noteId_Notes_id_fk", "name": "EmojiToNote_noteId_Notes_id_fk",
"tableFrom": "EmojiToNote", "tableFrom": "EmojiToNote",
"tableTo": "Notes",
"columnsFrom": ["noteId"], "columnsFrom": ["noteId"],
"tableTo": "Notes",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -245,34 +276,58 @@
}, },
"indexes": { "indexes": {
"EmojiToUser_emojiId_userId_index": { "EmojiToUser_emojiId_userId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_emojiId_userId_index", "name": "EmojiToUser_emojiId_userId_index",
"columns": ["emojiId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToUser_userId_index": { "EmojiToUser_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_userId_index", "name": "EmojiToUser_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
"EmojiToUser_emojiId_Emojis_id_fk": { "EmojiToUser_emojiId_Emojis_id_fk": {
"name": "EmojiToUser_emojiId_Emojis_id_fk", "name": "EmojiToUser_emojiId_Emojis_id_fk",
"tableFrom": "EmojiToUser", "tableFrom": "EmojiToUser",
"tableTo": "Emojis",
"columnsFrom": ["emojiId"], "columnsFrom": ["emojiId"],
"tableTo": "Emojis",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"EmojiToUser_userId_Users_id_fk": { "EmojiToUser_userId_Users_id_fk": {
"name": "EmojiToUser_userId_Users_id_fk", "name": "EmojiToUser_userId_Users_id_fk",
"tableFrom": "EmojiToUser", "tableFrom": "EmojiToUser",
"tableTo": "Users",
"columnsFrom": ["userId"], "columnsFrom": ["userId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -343,20 +398,20 @@
"Emojis_instanceId_Instances_id_fk": { "Emojis_instanceId_Instances_id_fk": {
"name": "Emojis_instanceId_Instances_id_fk", "name": "Emojis_instanceId_Instances_id_fk",
"tableFrom": "Emojis", "tableFrom": "Emojis",
"tableTo": "Instances",
"columnsFrom": ["instanceId"], "columnsFrom": ["instanceId"],
"tableTo": "Instances",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"Emojis_ownerId_Users_id_fk": { "Emojis_ownerId_Users_id_fk": {
"name": "Emojis_ownerId_Users_id_fk", "name": "Emojis_ownerId_Users_id_fk",
"tableFrom": "Emojis", "tableFrom": "Emojis",
"tableTo": "Users",
"columnsFrom": ["ownerId"], "columnsFrom": ["ownerId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -397,11 +452,11 @@
"FilterKeywords_filterId_Filters_id_fk": { "FilterKeywords_filterId_Filters_id_fk": {
"name": "FilterKeywords_filterId_Filters_id_fk", "name": "FilterKeywords_filterId_Filters_id_fk",
"tableFrom": "FilterKeywords", "tableFrom": "FilterKeywords",
"tableTo": "Filters",
"columnsFrom": ["filterId"], "columnsFrom": ["filterId"],
"tableTo": "Filters",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -461,11 +516,11 @@
"Filters_userId_Users_id_fk": { "Filters_userId_Users_id_fk": {
"name": "Filters_userId_Users_id_fk", "name": "Filters_userId_Users_id_fk",
"tableFrom": "Filters", "tableFrom": "Filters",
"tableTo": "Users",
"columnsFrom": ["userId"], "columnsFrom": ["userId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -514,20 +569,20 @@
"Flags_noteId_Notes_id_fk": { "Flags_noteId_Notes_id_fk": {
"name": "Flags_noteId_Notes_id_fk", "name": "Flags_noteId_Notes_id_fk",
"tableFrom": "Flags", "tableFrom": "Flags",
"tableTo": "Notes",
"columnsFrom": ["noteId"], "columnsFrom": ["noteId"],
"tableTo": "Notes",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"Flags_userId_Users_id_fk": { "Flags_userId_Users_id_fk": {
"name": "Flags_userId_Users_id_fk", "name": "Flags_userId_Users_id_fk",
"tableFrom": "Flags", "tableFrom": "Flags",
"tableTo": "Users",
"columnsFrom": ["userId"], "columnsFrom": ["userId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -617,20 +672,20 @@
"Likes_likerId_Users_id_fk": { "Likes_likerId_Users_id_fk": {
"name": "Likes_likerId_Users_id_fk", "name": "Likes_likerId_Users_id_fk",
"tableFrom": "Likes", "tableFrom": "Likes",
"tableTo": "Users",
"columnsFrom": ["likerId"], "columnsFrom": ["likerId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"Likes_likedId_Notes_id_fk": { "Likes_likedId_Notes_id_fk": {
"name": "Likes_likedId_Notes_id_fk", "name": "Likes_likedId_Notes_id_fk",
"tableFrom": "Likes", "tableFrom": "Likes",
"tableTo": "Notes",
"columnsFrom": ["likedId"], "columnsFrom": ["likedId"],
"tableTo": "Notes",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -693,25 +748,43 @@
}, },
"indexes": { "indexes": {
"LysandObject_remote_id_index": { "LysandObject_remote_id_index": {
"columns": [
{
"expression": "remote_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_remote_id_index", "name": "LysandObject_remote_id_index",
"columns": ["remote_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"LysandObject_uri_index": { "LysandObject_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_uri_index", "name": "LysandObject_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
"LysandObject_authorId_LysandObject_id_fk": { "LysandObject_authorId_LysandObject_id_fk": {
"name": "LysandObject_authorId_LysandObject_id_fk", "name": "LysandObject_authorId_LysandObject_id_fk",
"tableFrom": "LysandObject", "tableFrom": "LysandObject",
"tableTo": "LysandObject",
"columnsFrom": ["authorId"], "columnsFrom": ["authorId"],
"tableTo": "LysandObject",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -765,29 +838,29 @@
"Markers_noteId_Notes_id_fk": { "Markers_noteId_Notes_id_fk": {
"name": "Markers_noteId_Notes_id_fk", "name": "Markers_noteId_Notes_id_fk",
"tableFrom": "Markers", "tableFrom": "Markers",
"tableTo": "Notes",
"columnsFrom": ["noteId"], "columnsFrom": ["noteId"],
"tableTo": "Notes",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"Markers_notificationId_Notifications_id_fk": { "Markers_notificationId_Notifications_id_fk": {
"name": "Markers_notificationId_Notifications_id_fk", "name": "Markers_notificationId_Notifications_id_fk",
"tableFrom": "Markers", "tableFrom": "Markers",
"tableTo": "Notifications",
"columnsFrom": ["notificationId"], "columnsFrom": ["notificationId"],
"tableTo": "Notifications",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"Markers_userId_Users_id_fk": { "Markers_userId_Users_id_fk": {
"name": "Markers_userId_Users_id_fk", "name": "Markers_userId_Users_id_fk",
"tableFrom": "Markers", "tableFrom": "Markers",
"tableTo": "Users",
"columnsFrom": ["userId"], "columnsFrom": ["userId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -841,29 +914,29 @@
"ModNotes_noteId_Notes_id_fk": { "ModNotes_noteId_Notes_id_fk": {
"name": "ModNotes_noteId_Notes_id_fk", "name": "ModNotes_noteId_Notes_id_fk",
"tableFrom": "ModNotes", "tableFrom": "ModNotes",
"tableTo": "Notes",
"columnsFrom": ["noteId"], "columnsFrom": ["noteId"],
"tableTo": "Notes",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"ModNotes_userId_Users_id_fk": { "ModNotes_userId_Users_id_fk": {
"name": "ModNotes_userId_Users_id_fk", "name": "ModNotes_userId_Users_id_fk",
"tableFrom": "ModNotes", "tableFrom": "ModNotes",
"tableTo": "Users",
"columnsFrom": ["userId"], "columnsFrom": ["userId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"ModNotes_modId_Users_id_fk": { "ModNotes_modId_Users_id_fk": {
"name": "ModNotes_modId_Users_id_fk", "name": "ModNotes_modId_Users_id_fk",
"tableFrom": "ModNotes", "tableFrom": "ModNotes",
"tableTo": "Users",
"columnsFrom": ["modId"], "columnsFrom": ["modId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -917,29 +990,29 @@
"ModTags_noteId_Notes_id_fk": { "ModTags_noteId_Notes_id_fk": {
"name": "ModTags_noteId_Notes_id_fk", "name": "ModTags_noteId_Notes_id_fk",
"tableFrom": "ModTags", "tableFrom": "ModTags",
"tableTo": "Notes",
"columnsFrom": ["noteId"], "columnsFrom": ["noteId"],
"tableTo": "Notes",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"ModTags_userId_Users_id_fk": { "ModTags_userId_Users_id_fk": {
"name": "ModTags_userId_Users_id_fk", "name": "ModTags_userId_Users_id_fk",
"tableFrom": "ModTags", "tableFrom": "ModTags",
"tableTo": "Users",
"columnsFrom": ["userId"], "columnsFrom": ["userId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"ModTags_modId_Users_id_fk": { "ModTags_modId_Users_id_fk": {
"name": "ModTags_modId_Users_id_fk", "name": "ModTags_modId_Users_id_fk",
"tableFrom": "ModTags", "tableFrom": "ModTags",
"tableTo": "Users",
"columnsFrom": ["modId"], "columnsFrom": ["modId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -964,34 +1037,58 @@
}, },
"indexes": { "indexes": {
"NoteToMentions_noteId_userId_index": { "NoteToMentions_noteId_userId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "NoteToMentions_noteId_userId_index", "name": "NoteToMentions_noteId_userId_index",
"columns": ["noteId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"NoteToMentions_userId_index": { "NoteToMentions_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "NoteToMentions_userId_index", "name": "NoteToMentions_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
"NoteToMentions_noteId_Notes_id_fk": { "NoteToMentions_noteId_Notes_id_fk": {
"name": "NoteToMentions_noteId_Notes_id_fk", "name": "NoteToMentions_noteId_Notes_id_fk",
"tableFrom": "NoteToMentions", "tableFrom": "NoteToMentions",
"tableTo": "Notes",
"columnsFrom": ["noteId"], "columnsFrom": ["noteId"],
"tableTo": "Notes",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"NoteToMentions_userId_Users_id_fk": { "NoteToMentions_userId_Users_id_fk": {
"name": "NoteToMentions_userId_Users_id_fk", "name": "NoteToMentions_userId_Users_id_fk",
"tableFrom": "NoteToMentions", "tableFrom": "NoteToMentions",
"tableTo": "Users",
"columnsFrom": ["userId"], "columnsFrom": ["userId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -1104,55 +1201,55 @@
"Notes_authorId_Users_id_fk": { "Notes_authorId_Users_id_fk": {
"name": "Notes_authorId_Users_id_fk", "name": "Notes_authorId_Users_id_fk",
"tableFrom": "Notes", "tableFrom": "Notes",
"tableTo": "Users",
"columnsFrom": ["authorId"], "columnsFrom": ["authorId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"Notes_reblogId_Notes_id_fk": { "Notes_reblogId_Notes_id_fk": {
"name": "Notes_reblogId_Notes_id_fk", "name": "Notes_reblogId_Notes_id_fk",
"tableFrom": "Notes", "tableFrom": "Notes",
"tableTo": "Notes",
"columnsFrom": ["reblogId"], "columnsFrom": ["reblogId"],
"tableTo": "Notes",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"Notes_replyId_Notes_id_fk": { "Notes_replyId_Notes_id_fk": {
"name": "Notes_replyId_Notes_id_fk", "name": "Notes_replyId_Notes_id_fk",
"tableFrom": "Notes", "tableFrom": "Notes",
"tableTo": "Notes",
"columnsFrom": ["replyId"], "columnsFrom": ["replyId"],
"tableTo": "Notes",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"Notes_quoteId_Notes_id_fk": { "Notes_quoteId_Notes_id_fk": {
"name": "Notes_quoteId_Notes_id_fk", "name": "Notes_quoteId_Notes_id_fk",
"tableFrom": "Notes", "tableFrom": "Notes",
"tableTo": "Notes",
"columnsFrom": ["quoteId"], "columnsFrom": ["quoteId"],
"tableTo": "Notes",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"Notes_applicationId_Applications_id_fk": { "Notes_applicationId_Applications_id_fk": {
"name": "Notes_applicationId_Applications_id_fk", "name": "Notes_applicationId_Applications_id_fk",
"tableFrom": "Notes", "tableFrom": "Notes",
"tableTo": "Applications",
"columnsFrom": ["applicationId"], "columnsFrom": ["applicationId"],
"tableTo": "Applications",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "set null", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "set null"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
"uniqueConstraints": { "uniqueConstraints": {
"Notes_uri_unique": { "Notes_uri_unique": {
"name": "Notes_uri_unique", "name": "Notes_uri_unique",
"nullsNotDistinct": false, "columns": ["uri"],
"columns": ["uri"] "nullsNotDistinct": false
} }
} }
}, },
@ -1211,29 +1308,29 @@
"Notifications_notifiedId_Users_id_fk": { "Notifications_notifiedId_Users_id_fk": {
"name": "Notifications_notifiedId_Users_id_fk", "name": "Notifications_notifiedId_Users_id_fk",
"tableFrom": "Notifications", "tableFrom": "Notifications",
"tableTo": "Users",
"columnsFrom": ["notifiedId"], "columnsFrom": ["notifiedId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"Notifications_accountId_Users_id_fk": { "Notifications_accountId_Users_id_fk": {
"name": "Notifications_accountId_Users_id_fk", "name": "Notifications_accountId_Users_id_fk",
"tableFrom": "Notifications", "tableFrom": "Notifications",
"tableTo": "Users",
"columnsFrom": ["accountId"], "columnsFrom": ["accountId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"Notifications_noteId_Notes_id_fk": { "Notifications_noteId_Notes_id_fk": {
"name": "Notifications_noteId_Notes_id_fk", "name": "Notifications_noteId_Notes_id_fk",
"tableFrom": "Notifications", "tableFrom": "Notifications",
"tableTo": "Notes",
"columnsFrom": ["noteId"], "columnsFrom": ["noteId"],
"tableTo": "Notes",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -1274,11 +1371,11 @@
"OpenIdAccounts_userId_Users_id_fk": { "OpenIdAccounts_userId_Users_id_fk": {
"name": "OpenIdAccounts_userId_Users_id_fk", "name": "OpenIdAccounts_userId_Users_id_fk",
"tableFrom": "OpenIdAccounts", "tableFrom": "OpenIdAccounts",
"tableTo": "Users",
"columnsFrom": ["userId"], "columnsFrom": ["userId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "set null", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "set null"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -1319,11 +1416,11 @@
"OpenIdLoginFlows_applicationId_Applications_id_fk": { "OpenIdLoginFlows_applicationId_Applications_id_fk": {
"name": "OpenIdLoginFlows_applicationId_Applications_id_fk", "name": "OpenIdLoginFlows_applicationId_Applications_id_fk",
"tableFrom": "OpenIdLoginFlows", "tableFrom": "OpenIdLoginFlows",
"tableTo": "Applications",
"columnsFrom": ["applicationId"], "columnsFrom": ["applicationId"],
"tableTo": "Applications",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -1450,20 +1547,20 @@
"Relationships_ownerId_Users_id_fk": { "Relationships_ownerId_Users_id_fk": {
"name": "Relationships_ownerId_Users_id_fk", "name": "Relationships_ownerId_Users_id_fk",
"tableFrom": "Relationships", "tableFrom": "Relationships",
"tableTo": "Users",
"columnsFrom": ["ownerId"], "columnsFrom": ["ownerId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"Relationships_subjectId_Users_id_fk": { "Relationships_subjectId_Users_id_fk": {
"name": "Relationships_subjectId_Users_id_fk", "name": "Relationships_subjectId_Users_id_fk",
"tableFrom": "Relationships", "tableFrom": "Relationships",
"tableTo": "Users",
"columnsFrom": ["subjectId"], "columnsFrom": ["subjectId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -1555,20 +1652,20 @@
"Tokens_userId_Users_id_fk": { "Tokens_userId_Users_id_fk": {
"name": "Tokens_userId_Users_id_fk", "name": "Tokens_userId_Users_id_fk",
"tableFrom": "Tokens", "tableFrom": "Tokens",
"tableTo": "Users",
"columnsFrom": ["userId"], "columnsFrom": ["userId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"Tokens_applicationId_Applications_id_fk": { "Tokens_applicationId_Applications_id_fk": {
"name": "Tokens_applicationId_Applications_id_fk", "name": "Tokens_applicationId_Applications_id_fk",
"tableFrom": "Tokens", "tableFrom": "Tokens",
"tableTo": "Applications",
"columnsFrom": ["applicationId"], "columnsFrom": ["applicationId"],
"tableTo": "Applications",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -1593,34 +1690,58 @@
}, },
"indexes": { "indexes": {
"UserToPinnedNotes_userId_noteId_index": { "UserToPinnedNotes_userId_noteId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_userId_noteId_index", "name": "UserToPinnedNotes_userId_noteId_index",
"columns": ["userId", "noteId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"UserToPinnedNotes_noteId_index": { "UserToPinnedNotes_noteId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_noteId_index", "name": "UserToPinnedNotes_noteId_index",
"columns": ["noteId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
"UserToPinnedNotes_userId_Users_id_fk": { "UserToPinnedNotes_userId_Users_id_fk": {
"name": "UserToPinnedNotes_userId_Users_id_fk", "name": "UserToPinnedNotes_userId_Users_id_fk",
"tableFrom": "UserToPinnedNotes", "tableFrom": "UserToPinnedNotes",
"tableTo": "Users",
"columnsFrom": ["userId"], "columnsFrom": ["userId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"UserToPinnedNotes_noteId_Notes_id_fk": { "UserToPinnedNotes_noteId_Notes_id_fk": {
"name": "UserToPinnedNotes_noteId_Notes_id_fk", "name": "UserToPinnedNotes_noteId_Notes_id_fk",
"tableFrom": "UserToPinnedNotes", "tableFrom": "UserToPinnedNotes",
"tableTo": "Notes",
"columnsFrom": ["noteId"], "columnsFrom": ["noteId"],
"tableTo": "Notes",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -1781,30 +1902,57 @@
}, },
"indexes": { "indexes": {
"Users_uri_index": { "Users_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_uri_index", "name": "Users_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"Users_username_index": { "Users_username_index": {
"columns": [
{
"expression": "username",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_username_index", "name": "Users_username_index",
"columns": ["username"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"Users_email_index": { "Users_email_index": {
"columns": [
{
"expression": "email",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_email_index", "name": "Users_email_index",
"columns": ["email"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
"Users_instanceId_Instances_id_fk": { "Users_instanceId_Instances_id_fk": {
"name": "Users_instanceId_Instances_id_fk", "name": "Users_instanceId_Instances_id_fk",
"tableFrom": "Users", "tableFrom": "Users",
"tableTo": "Instances",
"columnsFrom": ["instanceId"], "columnsFrom": ["instanceId"],
"tableTo": "Instances",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -1814,8 +1962,10 @@
"enums": {}, "enums": {},
"schemas": {}, "schemas": {},
"_meta": { "_meta": {
"columns": {},
"schemas": {}, "schemas": {},
"tables": {} "tables": {},
} "columns": {}
},
"id": "2ebf1bd7-ed30-4e28-aa35-091c4cec896c",
"prevId": "44e89287-856b-4cc8-bee0-fb394522b01c"
} }

View file

@ -1,7 +1,5 @@
{ {
"id": "c9b9230b-ba1c-4a81-bb6c-ce2e8efe09bf", "version": "7",
"prevId": "2ebf1bd7-ed30-4e28-aa35-091c4cec896c",
"version": "6",
"dialect": "postgresql", "dialect": "postgresql",
"tables": { "tables": {
"public.Applications": { "public.Applications": {
@ -60,9 +58,18 @@
}, },
"indexes": { "indexes": {
"Applications_client_id_index": { "Applications_client_id_index": {
"columns": [
{
"expression": "client_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Applications_client_id_index", "name": "Applications_client_id_index",
"columns": ["client_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": {}, "foreignKeys": {},
@ -164,11 +171,11 @@
"Attachments_noteId_Notes_id_fk": { "Attachments_noteId_Notes_id_fk": {
"name": "Attachments_noteId_Notes_id_fk", "name": "Attachments_noteId_Notes_id_fk",
"tableFrom": "Attachments", "tableFrom": "Attachments",
"tableTo": "Notes",
"columnsFrom": ["noteId"], "columnsFrom": ["noteId"],
"tableTo": "Notes",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -193,34 +200,58 @@
}, },
"indexes": { "indexes": {
"EmojiToNote_emojiId_noteId_index": { "EmojiToNote_emojiId_noteId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToNote_emojiId_noteId_index", "name": "EmojiToNote_emojiId_noteId_index",
"columns": ["emojiId", "noteId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToNote_noteId_index": { "EmojiToNote_noteId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToNote_noteId_index", "name": "EmojiToNote_noteId_index",
"columns": ["noteId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
"EmojiToNote_emojiId_Emojis_id_fk": { "EmojiToNote_emojiId_Emojis_id_fk": {
"name": "EmojiToNote_emojiId_Emojis_id_fk", "name": "EmojiToNote_emojiId_Emojis_id_fk",
"tableFrom": "EmojiToNote", "tableFrom": "EmojiToNote",
"tableTo": "Emojis",
"columnsFrom": ["emojiId"], "columnsFrom": ["emojiId"],
"tableTo": "Emojis",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"EmojiToNote_noteId_Notes_id_fk": { "EmojiToNote_noteId_Notes_id_fk": {
"name": "EmojiToNote_noteId_Notes_id_fk", "name": "EmojiToNote_noteId_Notes_id_fk",
"tableFrom": "EmojiToNote", "tableFrom": "EmojiToNote",
"tableTo": "Notes",
"columnsFrom": ["noteId"], "columnsFrom": ["noteId"],
"tableTo": "Notes",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -245,34 +276,58 @@
}, },
"indexes": { "indexes": {
"EmojiToUser_emojiId_userId_index": { "EmojiToUser_emojiId_userId_index": {
"columns": [
{
"expression": "emojiId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_emojiId_userId_index", "name": "EmojiToUser_emojiId_userId_index",
"columns": ["emojiId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"EmojiToUser_userId_index": { "EmojiToUser_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "EmojiToUser_userId_index", "name": "EmojiToUser_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
"EmojiToUser_emojiId_Emojis_id_fk": { "EmojiToUser_emojiId_Emojis_id_fk": {
"name": "EmojiToUser_emojiId_Emojis_id_fk", "name": "EmojiToUser_emojiId_Emojis_id_fk",
"tableFrom": "EmojiToUser", "tableFrom": "EmojiToUser",
"tableTo": "Emojis",
"columnsFrom": ["emojiId"], "columnsFrom": ["emojiId"],
"tableTo": "Emojis",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"EmojiToUser_userId_Users_id_fk": { "EmojiToUser_userId_Users_id_fk": {
"name": "EmojiToUser_userId_Users_id_fk", "name": "EmojiToUser_userId_Users_id_fk",
"tableFrom": "EmojiToUser", "tableFrom": "EmojiToUser",
"tableTo": "Users",
"columnsFrom": ["userId"], "columnsFrom": ["userId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -343,20 +398,20 @@
"Emojis_instanceId_Instances_id_fk": { "Emojis_instanceId_Instances_id_fk": {
"name": "Emojis_instanceId_Instances_id_fk", "name": "Emojis_instanceId_Instances_id_fk",
"tableFrom": "Emojis", "tableFrom": "Emojis",
"tableTo": "Instances",
"columnsFrom": ["instanceId"], "columnsFrom": ["instanceId"],
"tableTo": "Instances",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"Emojis_ownerId_Users_id_fk": { "Emojis_ownerId_Users_id_fk": {
"name": "Emojis_ownerId_Users_id_fk", "name": "Emojis_ownerId_Users_id_fk",
"tableFrom": "Emojis", "tableFrom": "Emojis",
"tableTo": "Users",
"columnsFrom": ["ownerId"], "columnsFrom": ["ownerId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -397,11 +452,11 @@
"FilterKeywords_filterId_Filters_id_fk": { "FilterKeywords_filterId_Filters_id_fk": {
"name": "FilterKeywords_filterId_Filters_id_fk", "name": "FilterKeywords_filterId_Filters_id_fk",
"tableFrom": "FilterKeywords", "tableFrom": "FilterKeywords",
"tableTo": "Filters",
"columnsFrom": ["filterId"], "columnsFrom": ["filterId"],
"tableTo": "Filters",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -461,11 +516,11 @@
"Filters_userId_Users_id_fk": { "Filters_userId_Users_id_fk": {
"name": "Filters_userId_Users_id_fk", "name": "Filters_userId_Users_id_fk",
"tableFrom": "Filters", "tableFrom": "Filters",
"tableTo": "Users",
"columnsFrom": ["userId"], "columnsFrom": ["userId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -514,20 +569,20 @@
"Flags_noteId_Notes_id_fk": { "Flags_noteId_Notes_id_fk": {
"name": "Flags_noteId_Notes_id_fk", "name": "Flags_noteId_Notes_id_fk",
"tableFrom": "Flags", "tableFrom": "Flags",
"tableTo": "Notes",
"columnsFrom": ["noteId"], "columnsFrom": ["noteId"],
"tableTo": "Notes",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"Flags_userId_Users_id_fk": { "Flags_userId_Users_id_fk": {
"name": "Flags_userId_Users_id_fk", "name": "Flags_userId_Users_id_fk",
"tableFrom": "Flags", "tableFrom": "Flags",
"tableTo": "Users",
"columnsFrom": ["userId"], "columnsFrom": ["userId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -617,20 +672,20 @@
"Likes_likerId_Users_id_fk": { "Likes_likerId_Users_id_fk": {
"name": "Likes_likerId_Users_id_fk", "name": "Likes_likerId_Users_id_fk",
"tableFrom": "Likes", "tableFrom": "Likes",
"tableTo": "Users",
"columnsFrom": ["likerId"], "columnsFrom": ["likerId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"Likes_likedId_Notes_id_fk": { "Likes_likedId_Notes_id_fk": {
"name": "Likes_likedId_Notes_id_fk", "name": "Likes_likedId_Notes_id_fk",
"tableFrom": "Likes", "tableFrom": "Likes",
"tableTo": "Notes",
"columnsFrom": ["likedId"], "columnsFrom": ["likedId"],
"tableTo": "Notes",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -693,25 +748,43 @@
}, },
"indexes": { "indexes": {
"LysandObject_remote_id_index": { "LysandObject_remote_id_index": {
"columns": [
{
"expression": "remote_id",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_remote_id_index", "name": "LysandObject_remote_id_index",
"columns": ["remote_id"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"LysandObject_uri_index": { "LysandObject_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "LysandObject_uri_index", "name": "LysandObject_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
"LysandObject_authorId_LysandObject_id_fk": { "LysandObject_authorId_LysandObject_id_fk": {
"name": "LysandObject_authorId_LysandObject_id_fk", "name": "LysandObject_authorId_LysandObject_id_fk",
"tableFrom": "LysandObject", "tableFrom": "LysandObject",
"tableTo": "LysandObject",
"columnsFrom": ["authorId"], "columnsFrom": ["authorId"],
"tableTo": "LysandObject",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -765,29 +838,29 @@
"Markers_noteId_Notes_id_fk": { "Markers_noteId_Notes_id_fk": {
"name": "Markers_noteId_Notes_id_fk", "name": "Markers_noteId_Notes_id_fk",
"tableFrom": "Markers", "tableFrom": "Markers",
"tableTo": "Notes",
"columnsFrom": ["noteId"], "columnsFrom": ["noteId"],
"tableTo": "Notes",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"Markers_notificationId_Notifications_id_fk": { "Markers_notificationId_Notifications_id_fk": {
"name": "Markers_notificationId_Notifications_id_fk", "name": "Markers_notificationId_Notifications_id_fk",
"tableFrom": "Markers", "tableFrom": "Markers",
"tableTo": "Notifications",
"columnsFrom": ["notificationId"], "columnsFrom": ["notificationId"],
"tableTo": "Notifications",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"Markers_userId_Users_id_fk": { "Markers_userId_Users_id_fk": {
"name": "Markers_userId_Users_id_fk", "name": "Markers_userId_Users_id_fk",
"tableFrom": "Markers", "tableFrom": "Markers",
"tableTo": "Users",
"columnsFrom": ["userId"], "columnsFrom": ["userId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -841,29 +914,29 @@
"ModNotes_noteId_Notes_id_fk": { "ModNotes_noteId_Notes_id_fk": {
"name": "ModNotes_noteId_Notes_id_fk", "name": "ModNotes_noteId_Notes_id_fk",
"tableFrom": "ModNotes", "tableFrom": "ModNotes",
"tableTo": "Notes",
"columnsFrom": ["noteId"], "columnsFrom": ["noteId"],
"tableTo": "Notes",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"ModNotes_userId_Users_id_fk": { "ModNotes_userId_Users_id_fk": {
"name": "ModNotes_userId_Users_id_fk", "name": "ModNotes_userId_Users_id_fk",
"tableFrom": "ModNotes", "tableFrom": "ModNotes",
"tableTo": "Users",
"columnsFrom": ["userId"], "columnsFrom": ["userId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"ModNotes_modId_Users_id_fk": { "ModNotes_modId_Users_id_fk": {
"name": "ModNotes_modId_Users_id_fk", "name": "ModNotes_modId_Users_id_fk",
"tableFrom": "ModNotes", "tableFrom": "ModNotes",
"tableTo": "Users",
"columnsFrom": ["modId"], "columnsFrom": ["modId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -917,29 +990,29 @@
"ModTags_noteId_Notes_id_fk": { "ModTags_noteId_Notes_id_fk": {
"name": "ModTags_noteId_Notes_id_fk", "name": "ModTags_noteId_Notes_id_fk",
"tableFrom": "ModTags", "tableFrom": "ModTags",
"tableTo": "Notes",
"columnsFrom": ["noteId"], "columnsFrom": ["noteId"],
"tableTo": "Notes",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"ModTags_userId_Users_id_fk": { "ModTags_userId_Users_id_fk": {
"name": "ModTags_userId_Users_id_fk", "name": "ModTags_userId_Users_id_fk",
"tableFrom": "ModTags", "tableFrom": "ModTags",
"tableTo": "Users",
"columnsFrom": ["userId"], "columnsFrom": ["userId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"ModTags_modId_Users_id_fk": { "ModTags_modId_Users_id_fk": {
"name": "ModTags_modId_Users_id_fk", "name": "ModTags_modId_Users_id_fk",
"tableFrom": "ModTags", "tableFrom": "ModTags",
"tableTo": "Users",
"columnsFrom": ["modId"], "columnsFrom": ["modId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -964,34 +1037,58 @@
}, },
"indexes": { "indexes": {
"NoteToMentions_noteId_userId_index": { "NoteToMentions_noteId_userId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "NoteToMentions_noteId_userId_index", "name": "NoteToMentions_noteId_userId_index",
"columns": ["noteId", "userId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"NoteToMentions_userId_index": { "NoteToMentions_userId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "NoteToMentions_userId_index", "name": "NoteToMentions_userId_index",
"columns": ["userId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
"NoteToMentions_noteId_Notes_id_fk": { "NoteToMentions_noteId_Notes_id_fk": {
"name": "NoteToMentions_noteId_Notes_id_fk", "name": "NoteToMentions_noteId_Notes_id_fk",
"tableFrom": "NoteToMentions", "tableFrom": "NoteToMentions",
"tableTo": "Notes",
"columnsFrom": ["noteId"], "columnsFrom": ["noteId"],
"tableTo": "Notes",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"NoteToMentions_userId_Users_id_fk": { "NoteToMentions_userId_Users_id_fk": {
"name": "NoteToMentions_userId_Users_id_fk", "name": "NoteToMentions_userId_Users_id_fk",
"tableFrom": "NoteToMentions", "tableFrom": "NoteToMentions",
"tableTo": "Users",
"columnsFrom": ["userId"], "columnsFrom": ["userId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -1104,55 +1201,55 @@
"Notes_authorId_Users_id_fk": { "Notes_authorId_Users_id_fk": {
"name": "Notes_authorId_Users_id_fk", "name": "Notes_authorId_Users_id_fk",
"tableFrom": "Notes", "tableFrom": "Notes",
"tableTo": "Users",
"columnsFrom": ["authorId"], "columnsFrom": ["authorId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"Notes_reblogId_Notes_id_fk": { "Notes_reblogId_Notes_id_fk": {
"name": "Notes_reblogId_Notes_id_fk", "name": "Notes_reblogId_Notes_id_fk",
"tableFrom": "Notes", "tableFrom": "Notes",
"tableTo": "Notes",
"columnsFrom": ["reblogId"], "columnsFrom": ["reblogId"],
"tableTo": "Notes",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"Notes_replyId_Notes_id_fk": { "Notes_replyId_Notes_id_fk": {
"name": "Notes_replyId_Notes_id_fk", "name": "Notes_replyId_Notes_id_fk",
"tableFrom": "Notes", "tableFrom": "Notes",
"tableTo": "Notes",
"columnsFrom": ["replyId"], "columnsFrom": ["replyId"],
"tableTo": "Notes",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"Notes_quoteId_Notes_id_fk": { "Notes_quoteId_Notes_id_fk": {
"name": "Notes_quoteId_Notes_id_fk", "name": "Notes_quoteId_Notes_id_fk",
"tableFrom": "Notes", "tableFrom": "Notes",
"tableTo": "Notes",
"columnsFrom": ["quoteId"], "columnsFrom": ["quoteId"],
"tableTo": "Notes",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"Notes_applicationId_Applications_id_fk": { "Notes_applicationId_Applications_id_fk": {
"name": "Notes_applicationId_Applications_id_fk", "name": "Notes_applicationId_Applications_id_fk",
"tableFrom": "Notes", "tableFrom": "Notes",
"tableTo": "Applications",
"columnsFrom": ["applicationId"], "columnsFrom": ["applicationId"],
"tableTo": "Applications",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "set null", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "set null"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
"uniqueConstraints": { "uniqueConstraints": {
"Notes_uri_unique": { "Notes_uri_unique": {
"name": "Notes_uri_unique", "name": "Notes_uri_unique",
"nullsNotDistinct": false, "columns": ["uri"],
"columns": ["uri"] "nullsNotDistinct": false
} }
} }
}, },
@ -1211,29 +1308,29 @@
"Notifications_notifiedId_Users_id_fk": { "Notifications_notifiedId_Users_id_fk": {
"name": "Notifications_notifiedId_Users_id_fk", "name": "Notifications_notifiedId_Users_id_fk",
"tableFrom": "Notifications", "tableFrom": "Notifications",
"tableTo": "Users",
"columnsFrom": ["notifiedId"], "columnsFrom": ["notifiedId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"Notifications_accountId_Users_id_fk": { "Notifications_accountId_Users_id_fk": {
"name": "Notifications_accountId_Users_id_fk", "name": "Notifications_accountId_Users_id_fk",
"tableFrom": "Notifications", "tableFrom": "Notifications",
"tableTo": "Users",
"columnsFrom": ["accountId"], "columnsFrom": ["accountId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"Notifications_noteId_Notes_id_fk": { "Notifications_noteId_Notes_id_fk": {
"name": "Notifications_noteId_Notes_id_fk", "name": "Notifications_noteId_Notes_id_fk",
"tableFrom": "Notifications", "tableFrom": "Notifications",
"tableTo": "Notes",
"columnsFrom": ["noteId"], "columnsFrom": ["noteId"],
"tableTo": "Notes",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -1274,11 +1371,11 @@
"OpenIdAccounts_userId_Users_id_fk": { "OpenIdAccounts_userId_Users_id_fk": {
"name": "OpenIdAccounts_userId_Users_id_fk", "name": "OpenIdAccounts_userId_Users_id_fk",
"tableFrom": "OpenIdAccounts", "tableFrom": "OpenIdAccounts",
"tableTo": "Users",
"columnsFrom": ["userId"], "columnsFrom": ["userId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "set null", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "set null"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -1319,11 +1416,11 @@
"OpenIdLoginFlows_applicationId_Applications_id_fk": { "OpenIdLoginFlows_applicationId_Applications_id_fk": {
"name": "OpenIdLoginFlows_applicationId_Applications_id_fk", "name": "OpenIdLoginFlows_applicationId_Applications_id_fk",
"tableFrom": "OpenIdLoginFlows", "tableFrom": "OpenIdLoginFlows",
"tableTo": "Applications",
"columnsFrom": ["applicationId"], "columnsFrom": ["applicationId"],
"tableTo": "Applications",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -1450,20 +1547,20 @@
"Relationships_ownerId_Users_id_fk": { "Relationships_ownerId_Users_id_fk": {
"name": "Relationships_ownerId_Users_id_fk", "name": "Relationships_ownerId_Users_id_fk",
"tableFrom": "Relationships", "tableFrom": "Relationships",
"tableTo": "Users",
"columnsFrom": ["ownerId"], "columnsFrom": ["ownerId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"Relationships_subjectId_Users_id_fk": { "Relationships_subjectId_Users_id_fk": {
"name": "Relationships_subjectId_Users_id_fk", "name": "Relationships_subjectId_Users_id_fk",
"tableFrom": "Relationships", "tableFrom": "Relationships",
"tableTo": "Users",
"columnsFrom": ["subjectId"], "columnsFrom": ["subjectId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -1555,20 +1652,20 @@
"Tokens_userId_Users_id_fk": { "Tokens_userId_Users_id_fk": {
"name": "Tokens_userId_Users_id_fk", "name": "Tokens_userId_Users_id_fk",
"tableFrom": "Tokens", "tableFrom": "Tokens",
"tableTo": "Users",
"columnsFrom": ["userId"], "columnsFrom": ["userId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"Tokens_applicationId_Applications_id_fk": { "Tokens_applicationId_Applications_id_fk": {
"name": "Tokens_applicationId_Applications_id_fk", "name": "Tokens_applicationId_Applications_id_fk",
"tableFrom": "Tokens", "tableFrom": "Tokens",
"tableTo": "Applications",
"columnsFrom": ["applicationId"], "columnsFrom": ["applicationId"],
"tableTo": "Applications",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -1593,34 +1690,58 @@
}, },
"indexes": { "indexes": {
"UserToPinnedNotes_userId_noteId_index": { "UserToPinnedNotes_userId_noteId_index": {
"columns": [
{
"expression": "userId",
"isExpression": false,
"asc": true,
"nulls": "last"
},
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_userId_noteId_index", "name": "UserToPinnedNotes_userId_noteId_index",
"columns": ["userId", "noteId"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"UserToPinnedNotes_noteId_index": { "UserToPinnedNotes_noteId_index": {
"columns": [
{
"expression": "noteId",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "UserToPinnedNotes_noteId_index", "name": "UserToPinnedNotes_noteId_index",
"columns": ["noteId"], "isUnique": false,
"isUnique": false "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
"UserToPinnedNotes_userId_Users_id_fk": { "UserToPinnedNotes_userId_Users_id_fk": {
"name": "UserToPinnedNotes_userId_Users_id_fk", "name": "UserToPinnedNotes_userId_Users_id_fk",
"tableFrom": "UserToPinnedNotes", "tableFrom": "UserToPinnedNotes",
"tableTo": "Users",
"columnsFrom": ["userId"], "columnsFrom": ["userId"],
"tableTo": "Users",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
}, },
"UserToPinnedNotes_noteId_Notes_id_fk": { "UserToPinnedNotes_noteId_Notes_id_fk": {
"name": "UserToPinnedNotes_noteId_Notes_id_fk", "name": "UserToPinnedNotes_noteId_Notes_id_fk",
"tableFrom": "UserToPinnedNotes", "tableFrom": "UserToPinnedNotes",
"tableTo": "Notes",
"columnsFrom": ["noteId"], "columnsFrom": ["noteId"],
"tableTo": "Notes",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -1793,30 +1914,57 @@
}, },
"indexes": { "indexes": {
"Users_uri_index": { "Users_uri_index": {
"columns": [
{
"expression": "uri",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_uri_index", "name": "Users_uri_index",
"columns": ["uri"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"Users_username_index": { "Users_username_index": {
"columns": [
{
"expression": "username",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_username_index", "name": "Users_username_index",
"columns": ["username"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
}, },
"Users_email_index": { "Users_email_index": {
"columns": [
{
"expression": "email",
"isExpression": false,
"asc": true,
"nulls": "last"
}
],
"name": "Users_email_index", "name": "Users_email_index",
"columns": ["email"], "isUnique": true,
"isUnique": true "method": "btree",
"concurrently": false
} }
}, },
"foreignKeys": { "foreignKeys": {
"Users_instanceId_Instances_id_fk": { "Users_instanceId_Instances_id_fk": {
"name": "Users_instanceId_Instances_id_fk", "name": "Users_instanceId_Instances_id_fk",
"tableFrom": "Users", "tableFrom": "Users",
"tableTo": "Instances",
"columnsFrom": ["instanceId"], "columnsFrom": ["instanceId"],
"tableTo": "Instances",
"columnsTo": ["id"], "columnsTo": ["id"],
"onDelete": "cascade", "onUpdate": "cascade",
"onUpdate": "cascade" "onDelete": "cascade"
} }
}, },
"compositePrimaryKeys": {}, "compositePrimaryKeys": {},
@ -1826,8 +1974,10 @@
"enums": {}, "enums": {},
"schemas": {}, "schemas": {},
"_meta": { "_meta": {
"columns": {},
"schemas": {}, "schemas": {},
"tables": {} "tables": {},
} "columns": {}
},
"id": "c9b9230b-ba1c-4a81-bb6c-ce2e8efe09bf",
"prevId": "2ebf1bd7-ed30-4e28-aa35-091c4cec896c"
} }

File diff suppressed because it is too large Load diff

View file

@ -169,6 +169,13 @@
"when": 1715932436792, "when": 1715932436792,
"tag": "0023_lazy_wolfsbane", "tag": "0023_lazy_wolfsbane",
"breakpoints": true "breakpoints": true
},
{
"idx": 24,
"version": "7",
"when": 1717810992701,
"tag": "0024_lush_aaron_stack",
"breakpoints": true
} }
] ]
} }

View file

@ -484,6 +484,112 @@ export const ModTags = pgTable("ModTags", {
.notNull(), .notNull(),
}); });
/**
* Permissions not prefixed with `owner:` let the role manage all instances of the resource.
* For example, a user with the `notes` permission can manage all notes of every user
* - Manage: Delete, Update, Create
* - Owner: Only manage their own resources
*/
export enum RolePermissions {
MANAGE_NOTES = "notes",
MANAGE_OWN_NOTES = "owner:note",
MANAGE_ACCOUNTS = "accounts",
MANAGE_OWN_ACCOUNT = "owner:account",
MANAGE_EMOJIS = "emojis",
MANAGE_OWN_EMOJIS = "owner:emoji",
MANAGE_MEDIA = "media",
MANAGE_OWN_MEDIA = "owner:media",
MANAGE_BLOCKS = "blocks",
MANAGE_OWN_BLOCKS = "owner:block",
MANAGE_FILTERS = "filters",
MANAGE_OWN_FILTERS = "owner:filter",
MANAGE_MUTES = "mutes",
MANAGE_OWN_MUTES = "owner:mute",
MANAGE_REPORTS = "reports",
MANAGE_OWN_REPORTS = "owner:report",
MANAGE_SETTINGS = "settings",
MANAGE_OWN_SETTINGS = "owner:settings",
MANAGE_ROLES = "roles",
IGNORE_RATE_LIMITS = "ignore_rate_limits",
IMPERSONATE = "impersonate",
MANAGE_INSTANCE = "instance",
MANAGE_INSTANCE_FEDERATION = "instance:federation",
MANAGE_INSTANCE_SETTINGS = "instance:settings",
/** Users who do not have this permission will not be able to login! */
OAUTH = "oauth",
}
export const DEFAULT_ROLES = [
RolePermissions.MANAGE_OWN_NOTES,
RolePermissions.MANAGE_OWN_ACCOUNT,
RolePermissions.MANAGE_OWN_EMOJIS,
RolePermissions.MANAGE_OWN_MEDIA,
RolePermissions.MANAGE_OWN_BLOCKS,
RolePermissions.MANAGE_OWN_FILTERS,
RolePermissions.MANAGE_OWN_MUTES,
RolePermissions.MANAGE_OWN_REPORTS,
RolePermissions.MANAGE_OWN_SETTINGS,
RolePermissions.OAUTH,
];
export const ADMIN_ROLES = [
...DEFAULT_ROLES,
RolePermissions.MANAGE_NOTES,
RolePermissions.MANAGE_ACCOUNTS,
RolePermissions.MANAGE_EMOJIS,
RolePermissions.MANAGE_MEDIA,
RolePermissions.MANAGE_BLOCKS,
RolePermissions.MANAGE_FILTERS,
RolePermissions.MANAGE_MUTES,
RolePermissions.MANAGE_REPORTS,
RolePermissions.MANAGE_SETTINGS,
RolePermissions.MANAGE_ROLES,
RolePermissions.IMPERSONATE,
RolePermissions.IGNORE_RATE_LIMITS,
RolePermissions.MANAGE_INSTANCE,
RolePermissions.MANAGE_INSTANCE_FEDERATION,
RolePermissions.MANAGE_INSTANCE_SETTINGS,
];
export const Roles = pgTable("Roles", {
id: uuid("id").default(sql`uuid_generate_v7()`).primaryKey().notNull(),
name: text("name").notNull(),
permissions: text("permissions")
.array()
.notNull()
.$type<RolePermissions[]>(),
priority: integer("priority").notNull().default(0),
description: text("description"),
visible: boolean("visible").notNull().default(false),
icon: text("icon"),
});
export const RoleToUsers = pgTable("RoleToUsers", {
roleId: uuid("roleId")
.notNull()
.references(() => Roles.id, {
onDelete: "cascade",
onUpdate: "cascade",
}),
userId: uuid("userId")
.notNull()
.references(() => Users.id, {
onDelete: "cascade",
onUpdate: "cascade",
}),
});
export const RoleToUsersRelations = relations(RoleToUsers, ({ one }) => ({
role: one(Roles, {
fields: [RoleToUsers.roleId],
references: [Roles.id],
}),
user: one(Users, {
fields: [RoleToUsers.userId],
references: [Users.id],
}),
}));
export const EmojiToUser = pgTable( export const EmojiToUser = pgTable(
"EmojiToUser", "EmojiToUser",
{ {

View file

@ -0,0 +1,127 @@
import {
type InferInsertModel,
type InferSelectModel,
type SQL,
and,
desc,
eq,
inArray,
} from "drizzle-orm";
import { db } from "~/drizzle/db";
import { RoleToUsers, Roles } from "~/drizzle/schema";
export class Role {
private constructor(private role: InferSelectModel<typeof Roles>) {}
public static async fromId(id: string | null): Promise<Role | null> {
if (!id) return null;
return await Role.fromSql(eq(Roles.id, id));
}
public static async fromIds(ids: string[]): Promise<Role[]> {
return await Role.manyFromSql(inArray(Roles.id, ids));
}
public static async fromSql(
sql: SQL<unknown> | undefined,
orderBy: SQL<unknown> | undefined = desc(Roles.id),
) {
const found = await db.query.Roles.findFirst({
where: sql,
orderBy,
});
if (!found) return null;
return new Role(found);
}
public static async getUserRoles(userId: string) {
return (
await db.query.RoleToUsers.findMany({
where: (role, { eq }) => eq(role.userId, userId),
with: {
role: true,
},
})
).map((r) => new Role(r.role));
}
public static async manyFromSql(
sql: SQL<unknown> | undefined,
orderBy: SQL<unknown> | undefined = desc(Roles.id),
limit?: number,
offset?: number,
extra?: Parameters<typeof db.query.Users.findMany>[0],
) {
const found = await db.query.Roles.findMany({
where: sql,
orderBy,
limit,
offset,
with: extra?.with,
});
return found.map((s) => new Role(s));
}
public async save(
role: Partial<InferSelectModel<typeof Roles>> = this.role,
) {
return new Role(
(
await db
.update(Roles)
.set(role)
.where(eq(Roles.id, this.id))
.returning()
)[0],
);
}
public async delete() {
await db.delete(Roles).where(eq(Roles.id, this.id));
}
public static async new(role: InferInsertModel<typeof Roles>) {
return new Role((await db.insert(Roles).values(role).returning())[0]);
}
public async linkUser(userId: string) {
await db.insert(RoleToUsers).values({
userId,
roleId: this.id,
});
}
public async unlinkUser(userId: string) {
await db
.delete(RoleToUsers)
.where(
and(
eq(RoleToUsers.roleId, this.id),
eq(RoleToUsers.userId, userId),
),
);
}
get id() {
return this.role.id;
}
public getRole() {
return this.role;
}
public toAPI() {
return {
id: this.id,
name: this.role.name,
permissions: this.role.permissions,
priority: this.role.priority,
description: this.role.description,
visible: this.role.visible,
icon: this.role.icon,
};
}
}

View file

@ -0,0 +1,273 @@
import { afterAll, beforeAll, describe, expect, test } from "bun:test";
import { config } from "config-manager";
import { ADMIN_ROLES, DEFAULT_ROLES, RolePermissions } from "~/drizzle/schema";
import { Role } from "~/packages/database-interface/role";
import { getTestUsers, sendTestRequest } from "~/tests/utils";
import { meta } from "./index";
const { users, tokens } = await getTestUsers(1);
let role: Role;
let roleNotLinked: Role;
let higherPriorityRole: Role;
beforeAll(async () => {
// Create new role
role = await Role.new({
name: "test",
permissions: DEFAULT_ROLES,
priority: 2,
description: "test",
visible: true,
icon: "test",
});
expect(role).toBeDefined();
// Link role to user
await role.linkUser(users[0].id);
// Create new role
roleNotLinked = await Role.new({
name: "test2",
permissions: ADMIN_ROLES,
priority: 0,
description: "test2",
visible: true,
icon: "test2",
});
expect(roleNotLinked).toBeDefined();
// Create a role with higher priority than the user's role
higherPriorityRole = await Role.new({
name: "higherPriorityRole",
permissions: DEFAULT_ROLES,
priority: 3, // Higher priority than the user's role
description: "Higher priority role",
visible: true,
icon: "higherPriorityRole",
});
expect(higherPriorityRole).toBeDefined();
});
afterAll(async () => {
await role.delete();
await roleNotLinked.delete();
await higherPriorityRole.delete();
});
// /api/v1/roles/:id
describe(meta.route, () => {
test("should return 401 if not authenticated", async () => {
const response = await sendTestRequest(
new Request(
new URL(
meta.route.replace(":id", role.id),
config.http.base_url,
),
{
method: "GET",
},
),
);
expect(response.status).toBe(401);
});
test("should return 404 if role does not exist", async () => {
const response = await sendTestRequest(
new Request(
new URL(
meta.route.replace(
":id",
"00000000-0000-0000-0000-000000000000",
),
config.http.base_url,
),
{
method: "GET",
headers: {
Authorization: `Bearer ${tokens[0].accessToken}`,
},
},
),
);
expect(response.status).toBe(404);
});
test("should return the role", async () => {
const response = await sendTestRequest(
new Request(
new URL(
meta.route.replace(":id", role.id),
config.http.base_url,
),
{
method: "GET",
headers: {
Authorization: `Bearer ${tokens[0].accessToken}`,
},
},
),
);
expect(response.ok).toBe(true);
const output = await response.json();
expect(output).toMatchObject({
name: "test",
permissions: DEFAULT_ROLES,
priority: 2,
description: "test",
visible: true,
icon: "test",
});
});
test("should return 403 if user does not have MANAGE_ROLES permission", async () => {
const response = await sendTestRequest(
new Request(
new URL(
meta.route.replace(":id", roleNotLinked.id),
config.http.base_url,
),
{
method: "POST",
headers: {
Authorization: `Bearer ${tokens[0].accessToken}`,
},
},
),
);
expect(response.status).toBe(403);
const output = await response.json();
expect(output).toMatchObject({
error: "You do not have permission to manage roles",
});
});
test("should assign new role", async () => {
await role.save({
permissions: [RolePermissions.MANAGE_ROLES],
});
const response = await sendTestRequest(
new Request(
new URL(
meta.route.replace(":id", roleNotLinked.id),
config.http.base_url,
),
{
method: "POST",
headers: {
Authorization: `Bearer ${tokens[0].accessToken}`,
},
},
),
);
expect(response.status).toBe(204);
// Check if role was assigned
const response2 = await sendTestRequest(
new Request(new URL("/api/v1/roles", config.http.base_url), {
method: "GET",
headers: {
Authorization: `Bearer ${tokens[0].accessToken}`,
},
}),
);
expect(response2.ok).toBe(true);
const roles = await response2.json();
expect(roles).toHaveLength(2);
expect(roles).toContainEqual({
id: roleNotLinked.id,
name: "test2",
permissions: ADMIN_ROLES,
priority: 0,
description: "test2",
visible: true,
icon: "test2",
});
await role.save({
permissions: [],
});
});
test("should unassign role", async () => {
const response = await sendTestRequest(
new Request(
new URL(
meta.route.replace(":id", role.id),
config.http.base_url,
),
{
method: "DELETE",
headers: {
Authorization: `Bearer ${tokens[0].accessToken}`,
},
},
),
);
expect(response.status).toBe(204);
// Check if role was unassigned
const response2 = await sendTestRequest(
new Request(new URL("/api/v1/roles", config.http.base_url), {
method: "GET",
headers: {
Authorization: `Bearer ${tokens[0].accessToken}`,
},
}),
);
expect(response2.ok).toBe(true);
const roles = await response2.json();
expect(roles).toHaveLength(1);
expect(roles).not.toContainEqual({
name: "test",
permissions: ADMIN_ROLES,
priority: 0,
description: "test",
visible: true,
icon: "test",
});
});
test("should return 403 if user tries to add role with higher priority", async () => {
// Add MANAGE_ROLES permission to user
await role.save({
permissions: [RolePermissions.MANAGE_ROLES],
});
const response = await sendTestRequest(
new Request(
new URL(
meta.route.replace(":id", higherPriorityRole.id),
config.http.base_url,
),
{
method: "POST",
headers: {
Authorization: `Bearer ${tokens[0].accessToken}`,
},
},
),
);
expect(response.status).toBe(403);
const output = await response.json();
expect(output).toMatchObject({
error: "Cannot assign role 'higherPriorityRole' with priority 3 to user with highest role priority 0",
});
await role.save({
permissions: [],
});
});
});

View file

@ -0,0 +1,141 @@
import { applyConfig, auth, handleZodError, jsonOrForm } from "@/api";
import { errorResponse, jsonResponse, response } from "@/response";
import { zValidator } from "@hono/zod-validator";
import type { Hono } from "hono";
import { z } from "zod";
import { RolePermissions } from "~/drizzle/schema";
import { Role } from "~/packages/database-interface/role";
export const meta = applyConfig({
allowedMethods: ["GET", "POST", "DELETE"],
auth: {
required: true,
},
ratelimits: {
duration: 60,
max: 20,
},
route: "/api/v1/roles/:id",
});
export const schemas = {
param: z.object({
id: z.string().uuid(),
}),
};
export default (app: Hono) =>
app.on(
meta.allowedMethods,
meta.route,
jsonOrForm(),
zValidator("param", schemas.param, handleZodError),
auth(meta.auth),
async (context) => {
const { user } = context.req.valid("header");
const { id } = context.req.valid("param");
if (!user) {
return errorResponse("Unauthorized", 401);
}
const userRoles = await Role.getUserRoles(user.id);
const role = await Role.fromId(id);
if (!role) {
return errorResponse("Role not found", 404);
}
switch (context.req.method) {
case "GET": {
return jsonResponse(role.toAPI());
}
case "POST": {
// Check if user has MANAGE_ROLES permission
if (
!userRoles.some((r) =>
r
.getRole()
.permissions.includes(
RolePermissions.MANAGE_ROLES,
),
)
) {
return errorResponse(
"You do not have permission to manage roles",
403,
);
}
const userHighestRole = userRoles.reduce((prev, current) =>
prev.getRole().priority > current.getRole().priority
? prev
: current,
);
if (
role.getRole().priority >
userHighestRole.getRole().priority
) {
return errorResponse(
`Cannot assign role '${
role.getRole().name
}' with priority ${
role.getRole().priority
} to user with highest role priority ${
userHighestRole.getRole().priority
}`,
403,
);
}
await role.linkUser(user.id);
return response(null, 204);
}
case "DELETE": {
// Check if user has MANAGE_ROLES permission
if (
!userRoles.some((r) =>
r
.getRole()
.permissions.includes(
RolePermissions.MANAGE_ROLES,
),
)
) {
return errorResponse(
"You do not have permission to manage roles",
403,
);
}
const userHighestRole = userRoles.reduce((prev, current) =>
prev.getRole().priority > current.getRole().priority
? prev
: current,
);
if (
role.getRole().priority >
userHighestRole.getRole().priority
) {
return errorResponse(
`Cannot remove role '${
role.getRole().name
}' with priority ${
role.getRole().priority
} from user with highest role priority ${
userHighestRole.getRole().priority
}`,
403,
);
}
await role.unlinkUser(user.id);
return response(null, 204);
}
}
},
);

View file

@ -0,0 +1,62 @@
import { beforeAll, describe, expect, test } from "bun:test";
import { config } from "config-manager";
import { ADMIN_ROLES } from "~/drizzle/schema";
import { Role } from "~/packages/database-interface/role";
import { getTestUsers, sendTestRequest } from "~/tests/utils";
import { meta } from "./index";
const { users, tokens } = await getTestUsers(1);
let role: Role;
beforeAll(async () => {
// Create new role
role = await Role.new({
name: "test",
permissions: ADMIN_ROLES,
priority: 0,
description: "test",
visible: true,
icon: "test",
});
expect(role).toBeDefined();
// Link role to user
await role.linkUser(users[0].id);
});
// /api/v1/roles
describe(meta.route, () => {
test("should return 401 if not authenticated", async () => {
const response = await sendTestRequest(
new Request(new URL(meta.route, config.http.base_url), {
method: "GET",
}),
);
expect(response.status).toBe(401);
});
test("should return a list of roles", async () => {
const response = await sendTestRequest(
new Request(new URL(meta.route, config.http.base_url), {
method: "GET",
headers: {
Authorization: `Bearer ${tokens[0].accessToken}`,
},
}),
);
expect(response.ok).toBe(true);
const roles = await response.json();
expect(roles).toHaveLength(1);
expect(roles[0]).toMatchObject({
name: "test",
permissions: ADMIN_ROLES,
priority: 0,
description: "test",
visible: true,
icon: "test",
});
});
});

View file

@ -0,0 +1,34 @@
import { applyConfig, auth } from "@/api";
import { errorResponse, jsonResponse } from "@/response";
import type { Hono } from "hono";
import { Role } from "~/packages/database-interface/role";
export const meta = applyConfig({
allowedMethods: ["GET"],
auth: {
required: true,
},
ratelimits: {
duration: 60,
max: 20,
},
route: "/api/v1/roles",
});
export default (app: Hono) =>
app.on(
meta.allowedMethods,
meta.route,
auth(meta.auth),
async (context) => {
const { user } = context.req.valid("header");
if (!user) {
return errorResponse("Unauthorized", 401);
}
const userRoles = await Role.getUserRoles(user.id);
return jsonResponse(userRoles.map((r) => r.toAPI()));
},
);

View file

@ -297,6 +297,7 @@ export const jsonOrForm = () => {
...Object.fromEntries(files), ...Object.fromEntries(files),
}; };
} }
await next(); await next();
}); });
}; };