From 8e75d3af03fdd0e92f00de10eef0af2b093d1c7c Mon Sep 17 00:00:00 2001
From: rtkay123 <dev@kanjala.com>
Date: Wed, 11 Feb 2026 08:46:55 +0200
Subject: feat: jsonb column

---
 migrations/20260210193544_profile.sql | 30 +++++++-----------------------
 1 file changed, 7 insertions(+), 23 deletions(-)

(limited to 'migrations/20260210193544_profile.sql')

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;
-- 
cgit v1.2.3

