Bill Meet streaming hourly and storage per GB like Transfer.
Deploy Ladill Meet / deploy (push) Successful in 54s

Wallet debits at session end, on recording/file storage, and via daily renewals with grace period before asset deletion.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
isaacclad
2026-07-01 16:33:45 +00:00
co-authored by Cursor
parent 13a251250c
commit 59b59cb70e
18 changed files with 749 additions and 96 deletions
@@ -0,0 +1,34 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up(): void
{
Schema::table('meet_recordings', function (Blueprint $table) {
$table->timestamp('storage_paid_until')->nullable()->after('file_size');
$table->timestamp('storage_grace_ends_at')->nullable()->after('storage_paid_until');
$table->timestamp('storage_last_billed_at')->nullable()->after('storage_grace_ends_at');
});
Schema::table('meet_session_files', function (Blueprint $table) {
$table->timestamp('storage_paid_until')->nullable()->after('file_size');
$table->timestamp('storage_grace_ends_at')->nullable()->after('storage_paid_until');
$table->timestamp('storage_last_billed_at')->nullable()->after('storage_grace_ends_at');
});
}
public function down(): void
{
Schema::table('meet_recordings', function (Blueprint $table) {
$table->dropColumn(['storage_paid_until', 'storage_grace_ends_at', 'storage_last_billed_at']);
});
Schema::table('meet_session_files', function (Blueprint $table) {
$table->dropColumn(['storage_paid_until', 'storage_grace_ends_at', 'storage_last_billed_at']);
});
}
};