Files
ladill-transfer/config/transfer.php
T
isaaccladandCursor 7c4673adb6
Deploy Ladill Transfer / deploy (push) Successful in 44s
Add recipient email and milestone notifications on transfer create.
Recipients can be emailed the download link immediately and at optional
reminders (7/3/1 days before unavailable, or when grace period starts).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 12:38:58 +00:00

47 lines
1.9 KiB
PHP

<?php
return [
/*
| Service-to-service API keys (Bearer) for internal callers such as webmail.
*/
'service_api_keys' => array_filter([
'webmail' => env('TRANSFER_API_KEY_WEBMAIL'),
]),
// GHS per GB per month of retention (see qr-suite-decomposition.md §7.3).
'price_per_gb_month' => (float) env('TRANSFER_PRICE_PER_GB_MONTH', 0.30),
// Max single-file upload size (bytes). 0 = no limit (chunked uploads handle large files).
'max_file_bytes' => (int) env('TRANSFER_MAX_FILE_BYTES', 0),
// Bit-sized upload sessions (init → chunk → finalize), same pattern as hosting file manager.
'chunk_upload' => [
'path' => env('TRANSFER_CHUNK_UPLOAD_PATH', storage_path('app/chunked_uploads')),
'chunk_size_bytes' => (int) env('TRANSFER_CHUNK_SIZE_BYTES', 5 * 1024 * 1024),
],
// Max files per transfer.
'max_files_per_transfer' => (int) env('TRANSFER_MAX_FILES', 20),
// Monthly billing cycle length (days) — storage is renewed each period while the wallet can pay.
'billing_period_days' => (int) env('TRANSFER_BILLING_PERIOD_DAYS', 30),
// Days to keep files after a failed renewal before automatic deletion.
'grace_period_days' => (int) env('TRANSFER_GRACE_PERIOD_DAYS', 15),
// Recipient email milestones (checkboxes on the create transfer form).
'recipient_email_milestones' => [
'created' => 'Send download link immediately',
'7' => '7 days before files become unavailable',
'3' => '3 days before files become unavailable',
'1' => '1 day before files become unavailable',
'grace' => 'When files enter the payment grace period',
],
'default_recipient_email_milestones' => ['created'],
// Legacy env keys (billing is monthly until cancelled by non-payment + grace).
'default_retention_days' => (int) env('TRANSFER_DEFAULT_RETENTION_DAYS', 30),
'mail_retention_days' => (int) env('TRANSFER_MAIL_RETENTION_DAYS', 30),
];