- ThumbnailGeneratorPort in domain (bytes + config → resized bytes) - adapters-thumbnail: ImageThumbnailGenerator using image crate - ThumbnailGeneratorPlugin reads width/height/format/profile from step config - PostgresDerivativeRepository + 012_derivatives migration - Seeded in extract_metadata pipeline as step 2 (300x300 webp) - Standalone generate_derivative pipeline for on-demand use
15 lines
621 B
SQL
15 lines
621 B
SQL
CREATE TABLE derivatives (
|
|
derivative_id UUID PRIMARY KEY,
|
|
parent_asset_id UUID NOT NULL REFERENCES assets(asset_id),
|
|
profile_type TEXT NOT NULL,
|
|
storage_path TEXT NOT NULL,
|
|
mime_type TEXT NOT NULL DEFAULT '',
|
|
file_size BIGINT NOT NULL DEFAULT 0,
|
|
width INTEGER NOT NULL DEFAULT 0,
|
|
height INTEGER NOT NULL DEFAULT 0,
|
|
generation_status TEXT NOT NULL DEFAULT 'pending'
|
|
);
|
|
|
|
CREATE INDEX idx_derivatives_parent ON derivatives(parent_asset_id);
|
|
CREATE INDEX idx_derivatives_parent_profile ON derivatives(parent_asset_id, profile_type);
|