feat: add postgres migrations and repository adapters for vertical slice

This commit is contained in:
2026-05-31 05:43:21 +02:00
parent 4e2fc99065
commit 8c1a0e4519
15 changed files with 1324 additions and 39 deletions

View File

@@ -0,0 +1,33 @@
CREATE TABLE albums (
album_id UUID PRIMARY KEY,
title TEXT NOT NULL,
description TEXT NOT NULL DEFAULT '',
creator_user_id UUID NOT NULL REFERENCES users(id),
cover_asset_id UUID,
start_date TIMESTAMPTZ,
end_date TIMESTAMPTZ,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE TABLE album_entries (
album_id UUID NOT NULL REFERENCES albums(album_id) ON DELETE CASCADE,
asset_id UUID NOT NULL REFERENCES assets(asset_id) ON DELETE CASCADE,
sort_order INTEGER NOT NULL DEFAULT 0,
added_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
added_by_user_id UUID NOT NULL REFERENCES users(id),
PRIMARY KEY (album_id, asset_id)
);
CREATE TABLE tags (
tag_id UUID PRIMARY KEY,
name TEXT NOT NULL,
tag_source TEXT NOT NULL DEFAULT 'user_manual'
);
CREATE TABLE asset_tags (
asset_id UUID NOT NULL REFERENCES assets(asset_id) ON DELETE CASCADE,
tag_id UUID NOT NULL REFERENCES tags(tag_id) ON DELETE CASCADE,
tagged_by_user_id UUID,
confidence DOUBLE PRECISION NOT NULL DEFAULT 1.0,
PRIMARY KEY (asset_id, tag_id)
);