feat: stripe

This commit is contained in:
2026-05-27 10:15:21 +02:00
parent 79e020ffe3
commit a99d027771
29 changed files with 1160 additions and 4 deletions
+10 -1
View File
@@ -23,12 +23,13 @@ use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Illuminate\Support\Facades\Storage;
use Laravel\Cashier\Billable;
use Laravel\Sanctum\HasApiTokens;
class User extends Authenticatable implements FilamentUser, HasAvatar, HasLocalePreference, MustVerifyEmail
{
/** @use HasFactory<\Database\Factories\UserFactory> */
use HasApiTokens, HasFactory, HasUlids, Notifiable, SoftDeletes;
use Billable, HasApiTokens, HasFactory, HasUlids, Notifiable, SoftDeletes;
/**
* The attributes that are mass assignable.
@@ -58,6 +59,7 @@ class User extends Authenticatable implements FilamentUser, HasAvatar, HasLocale
'suspended_at',
'suspended_by',
'suspended_reason',
'ai_credits_balance',
];
/**
@@ -92,6 +94,8 @@ class User extends Authenticatable implements FilamentUser, HasAvatar, HasLocale
'role' => UserRole::class,
'date_of_birth' => 'immutable_date',
'suspended_at' => 'datetime',
'trial_ends_at' => 'datetime',
'ai_credits_balance' => 'integer',
];
}
@@ -115,6 +119,11 @@ class User extends Authenticatable implements FilamentUser, HasAvatar, HasLocale
return $this->hasMany(AiUsage::class);
}
public function creditLedgerEntries(): HasMany
{
return $this->hasMany(CreditLedgerEntry::class);
}
public function workouts(): HasMany
{
return $this->hasMany(WorkoutSessions::class);