24 lines
890 B
SQL
24 lines
890 B
SQL
CREATE TABLE assets (
|
|
asset_id UUID PRIMARY KEY,
|
|
volume_id UUID NOT NULL REFERENCES storage_volumes(volume_id),
|
|
relative_path TEXT NOT NULL,
|
|
checksum TEXT NOT NULL,
|
|
asset_type TEXT NOT NULL,
|
|
mime_type TEXT NOT NULL,
|
|
file_size BIGINT NOT NULL,
|
|
is_processed BOOLEAN NOT NULL DEFAULT false,
|
|
owner_user_id UUID NOT NULL REFERENCES users(id),
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
);
|
|
|
|
CREATE INDEX idx_assets_checksum ON assets(checksum);
|
|
CREATE INDEX idx_assets_owner ON assets(owner_user_id);
|
|
|
|
CREATE TABLE asset_metadata (
|
|
asset_id UUID NOT NULL REFERENCES assets(asset_id) ON DELETE CASCADE,
|
|
metadata_source TEXT NOT NULL,
|
|
data JSONB NOT NULL DEFAULT '{}',
|
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
PRIMARY KEY (asset_id, metadata_source)
|
|
);
|