39 lines
No EOL
1 KiB
SQL
39 lines
No EOL
1 KiB
SQL
-- Query ALL files owned by a user, ordered by most recently modified first
|
|
CREATE TABLE maplefile.files_by_owner (
|
|
owner_id UUID,
|
|
modified_at TIMESTAMP,
|
|
id UUID,
|
|
collection_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 (owner_id, modified_at, id)
|
|
) WITH CLUSTERING ORDER BY (modified_at DESC, id ASC); |