feat: add postgres migrations and repository adapters for vertical slice
This commit is contained in:
33
crates/adapters/postgres/migrations/005_organization.sql
Normal file
33
crates/adapters/postgres/migrations/005_organization.sql
Normal 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)
|
||||
);
|
||||
Reference in New Issue
Block a user