Update
This commit is contained in:
@@ -34,10 +34,11 @@ public function handle()
|
|||||||
|
|
||||||
if ($expiredTokens->isEmpty()) {
|
if ($expiredTokens->isEmpty()) {
|
||||||
$this->info('No expired tokens found.');
|
$this->info('No expired tokens found.');
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->info('Found ' . $expiredTokens->count() . ' expired tokens to process.');
|
$this->info('Found '.$expiredTokens->count().' expired tokens to process.');
|
||||||
|
|
||||||
$restoredCredits = 0;
|
$restoredCredits = 0;
|
||||||
|
|
||||||
@@ -47,10 +48,10 @@ public function handle()
|
|||||||
// Restore credits to user
|
// Restore credits to user
|
||||||
$token->user->user_usage()->increment('non_watermark_videos_left', $token->credits_reserved);
|
$token->user->user_usage()->increment('non_watermark_videos_left', $token->credits_reserved);
|
||||||
$restoredCredits += $token->credits_reserved;
|
$restoredCredits += $token->credits_reserved;
|
||||||
|
|
||||||
$this->info("Restored {$token->credits_reserved} credits to user {$token->user_id}");
|
$this->info("Restored {$token->credits_reserved} credits to user {$token->user_id}");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Delete the expired token
|
// Delete the expired token
|
||||||
$token->delete();
|
$token->delete();
|
||||||
}
|
}
|
||||||
@@ -58,4 +59,4 @@ public function handle()
|
|||||||
|
|
||||||
$this->info("Cleanup completed. Restored {$restoredCredits} credits and deleted {$expiredTokens->count()} expired tokens.");
|
$this->info("Cleanup completed. Restored {$restoredCredits} credits and deleted {$expiredTokens->count()} expired tokens.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ public function premiumExportComplete(Request $request)
|
|||||||
->where('user_id', $user->id)
|
->where('user_id', $user->id)
|
||||||
->first();
|
->first();
|
||||||
|
|
||||||
if (!$token) {
|
if (! $token) {
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'error' => [
|
'error' => [
|
||||||
'message' => 'Invalid export token.',
|
'message' => 'Invalid export token.',
|
||||||
@@ -70,7 +70,7 @@ public function premiumExportComplete(Request $request)
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$token->isValid()) {
|
if (! $token->isValid()) {
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'error' => [
|
'error' => [
|
||||||
'message' => 'Export token has expired or already been used.',
|
'message' => 'Export token has expired or already been used.',
|
||||||
|
|||||||
@@ -37,12 +37,12 @@ public function isExpired(): bool
|
|||||||
|
|
||||||
public function isUsed(): bool
|
public function isUsed(): bool
|
||||||
{
|
{
|
||||||
return !is_null($this->used_at);
|
return ! is_null($this->used_at);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function isValid(): bool
|
public function isValid(): bool
|
||||||
{
|
{
|
||||||
return !$this->isExpired() && !$this->isUsed();
|
return ! $this->isExpired() && ! $this->isUsed();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function markAsUsed(): void
|
public function markAsUsed(): void
|
||||||
@@ -53,11 +53,11 @@ public function markAsUsed(): void
|
|||||||
public function scopeExpiredAndUnused($query)
|
public function scopeExpiredAndUnused($query)
|
||||||
{
|
{
|
||||||
return $query->where('expires_at', '<', now())
|
return $query->where('expires_at', '<', now())
|
||||||
->whereNull('used_at');
|
->whereNull('used_at');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function scopeForUser($query, $userId)
|
public function scopeForUser($query, $userId)
|
||||||
{
|
{
|
||||||
return $query->where('user_id', $userId);
|
return $query->where('user_id', $userId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ public function up(): void
|
|||||||
$table->timestamp('expires_at');
|
$table->timestamp('expires_at');
|
||||||
$table->timestamp('used_at')->nullable();
|
$table->timestamp('used_at')->nullable();
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
|
|
||||||
$table->index(['user_id', 'expires_at']);
|
$table->index(['user_id', 'expires_at']);
|
||||||
$table->index('expires_at');
|
$table->index('expires_at');
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -58,6 +58,8 @@ @theme {
|
|||||||
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
||||||
--color-sidebar-border: var(--sidebar-border);
|
--color-sidebar-border: var(--sidebar-border);
|
||||||
--color-sidebar-ring: var(--sidebar-ring);
|
--color-sidebar-ring: var(--sidebar-ring);
|
||||||
|
|
||||||
|
--spacing-safe-area: env(safe-area-inset-top);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -109,8 +109,8 @@ const UpgradeSheet = () => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<Sheet open={isOpen} onOpenChange={handleOpenChange}>
|
<Sheet open={isOpen} onOpenChange={handleOpenChange}>
|
||||||
<SheetContent side="bottom" className="max-h-screen overflow-y-scroll pb-1">
|
<SheetContent side="bottom" className="max-h-screen gap-0! overflow-y-scroll pb-1 pt-safe-area">
|
||||||
<SheetHeader>
|
<SheetHeader className="mb-0">
|
||||||
<SheetTitle className="flex items-center justify-center gap-2 sm:text-center">
|
<SheetTitle className="flex items-center justify-center gap-2 sm:text-center">
|
||||||
<CartIcon className={'h-4 w-4'} /> Store
|
<CartIcon className={'h-4 w-4'} /> Store
|
||||||
</SheetTitle>
|
</SheetTitle>
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user