module default { scalar type access_status extending enum; type files { required file_id: str; required file_name: str; required file_content: str; required note: str { readonly := true; } required content_type: str { readonly := true; } required expires_at: datetime { readonly := true; } required uploaded_at: datetime { readonly := true; } multi accesses -> file_access; required property user_id: str { readonly := true; }; index on ((.file_id, .file_name, .expires_at, .user_id)); } type file_access { required ip: str; required status: access_status { default := access_status.ok; } user_agent: str { readonly := true; }; required at: datetime { readonly := true; default := datetime_of_statement(); } } }