42 lines
865 B
Plaintext
42 lines
865 B
Plaintext
module default {
|
|
scalar type access_status extending enum<ok, denied, expired, error>;
|
|
|
|
type files {
|
|
required file_id: str;
|
|
required file_name: str;
|
|
property file_content: str;
|
|
required file_size: str;
|
|
required note: str;
|
|
|
|
required content_type: str {
|
|
readonly := true;
|
|
}
|
|
required expires_at: datetime;
|
|
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();
|
|
}
|
|
}
|
|
}
|