monorepo/cloud/maplefile-backend/migrations/023_create_files_by_collection.up.cql

39 lines
No EOL
1 KiB
SQL

-- Query files by collection_id, ordered by most recently modified first
CREATE TABLE maplefile.files_by_collection (
collection_id UUID,
modified_at TIMESTAMP,
id UUID,
owner_id UUID,
created_by_user_id UUID,
state TEXT,
-- Encryption and Content Details
encrypted_metadata TEXT,
encrypted_file_key TEXT,
encryption_version TEXT,
encrypted_hash TEXT,
-- File Storage Details
encrypted_file_object_key TEXT,
encrypted_file_size_in_bytes BIGINT,
-- Thumbnail Storage Details
encrypted_thumbnail_object_key TEXT,
encrypted_thumbnail_size_in_bytes BIGINT,
-- Timestamps and versioning
created_at TIMESTAMP,
modified_by_user_id UUID,
version BIGINT,
-- State management
tombstone_version BIGINT,
tombstone_expiry TIMESTAMP,
-- IP tracking for GDPR compliance
created_from_ip_address TEXT,
modified_from_ip_address TEXT,
ip_anonymized_at TIMESTAMP,
PRIMARY KEY (collection_id, modified_at, id)
) WITH CLUSTERING ORDER BY (modified_at DESC, id ASC);