IOutput: { uploadExpenseFile: { checksum_sha256: string; coopname: string; id: number; item_hash?: null | string; kind: ExpenseFileKind; mime_type: string; original_filename?: null | string; proposal_hash: string; read_url?: null | string; size_bytes: number; storage_key: string; uploaded_at: unknown; uploaded_by_username: string; }; } Type declaration
uploadExpenseFile: {
checksum_sha256: string;
coopname: string;
id: number;
item_hash?: null | string;
kind: ExpenseFileKind;
mime_type: string;
original_filename?: null | string;
proposal_hash: string;
read_url?: null | string;
size_bytes: number;
storage_key: string;
uploaded_at: unknown;
uploaded_by_username: string;
}
checksum_sha256: string
coopname: string
id: number
Optional item_hash?: null | string
mime_type: string
Optional original_filename?: null | string
proposal_hash: string
Optional read_url?: null | string
size_bytes: number
storage_key: string
uploaded_at: unknown
uploaded_by_username: string
Загрузить первичный файл расхода (платёжка/чек/возврат) в бакет expenses:files.
Требуемые роли: chairman, member, user.