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);
