summaryrefslogtreecommitdiffstats
path: root/crates/profile-service/migrations
diff options
context:
space:
mode:
Diffstat (limited to 'crates/profile-service/migrations')
-rw-r--r--crates/profile-service/migrations/20250726161947_profile.sql32
1 files changed, 32 insertions, 0 deletions
diff --git a/crates/profile-service/migrations/20250726161947_profile.sql b/crates/profile-service/migrations/20250726161947_profile.sql
new file mode 100644
index 0000000..15822c8
--- /dev/null
+++ b/crates/profile-service/migrations/20250726161947_profile.sql
@@ -0,0 +1,32 @@
+create table profile (
+ id text primary key,
+ username varchar(30) not null,
+ inbox text not null,
+ outbox text,
+ local boolean not null,
+ avatar_url text,
+ description text,
+ user_type text not null check (
+ user_type IN ('PERSON', 'APPLICATION', 'GROUP', 'ORGANIZATION', 'SERVICE')
+ ),
+ created_at timestamptz not null default now(),
+ updated_at timestamptz not null default now(),
+ public_key text not null
+);
+
+create unique index unique_username_local
+ on profile (username)
+ where local = true;
+
+create or replace function set_updated_at()
+returns trigger as $$
+begin
+ new.updated_at := now();
+ return new;
+end;
+$$ language plpgsql;
+
+create trigger trigger_set_updated_at
+before update on profile
+for each row
+execute function set_updated_at();