aboutsummaryrefslogtreecommitdiffstats
path: root/migrations/20260210193544_profile.sql
diff options
context:
space:
mode:
Diffstat (limited to 'migrations/20260210193544_profile.sql')
-rw-r--r--migrations/20260210193544_profile.sql30
1 files changed, 7 insertions, 23 deletions
diff --git a/migrations/20260210193544_profile.sql b/migrations/20260210193544_profile.sql
index f47d034..930e657 100644
--- a/migrations/20260210193544_profile.sql
+++ b/migrations/20260210193544_profile.sql
@@ -1,26 +1,10 @@
-create type actor_kind as enum (
- 'application',
- 'group',
- 'organization',
- 'person',
- 'service'
-);
-
create table profile (
- ap_id text primary key,
- username varchar(15),
- description varchar(255),
- inbox text not null,
- role actor_kind not null default 'person',
- outbox text,
- picture text,
- public_key text not null,
- private_key text,
- created_at timestamptz not null default now(),
- last_refreshed_at timestamptz not null default now()
+ data jsonb not null,
+ id text generated always as (data->>'id') stored,
+ primary key (id)
);
-create index user_inbox_idx on profile (inbox);
-create index user_outbox_idx on profile (outbox);
-create index user_role_idx on profile (role);
-create index user_username_idx on profile (username);
+create index idx_profile_inbox on profile using gin ((data->'inbox'));
+create index idx_profile_private_key_null
+ on profile ((data->>'private_key'))
+ where data->>'private_key' is null;