chore: fix mrr calculation and grid import

This commit is contained in:
idevakk
2025-11-21 12:41:54 -08:00
parent 0baacdc386
commit 38ae2770ea
4 changed files with 114 additions and 33 deletions

View File

@@ -8,11 +8,11 @@ use App\Models\Subscription;
use Filament\Actions\Action;
use Filament\Actions\Concerns\InteractsWithActions;
use Filament\Forms\Components\DatePicker;
use Filament\Forms\Components\Grid;
use Filament\Forms\Components\Select;
use Filament\Forms\Concerns\InteractsWithForms;
use Filament\Forms\Contracts\HasForms;
use Filament\Pages\Page;
use Filament\Schemas\Components\Grid;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Concerns\InteractsWithTable;
use Filament\Tables\Contracts\HasTable;
@@ -129,19 +129,19 @@ class CustomerAnalytics extends Page implements HasForms, HasTable
$this->getCustomerAnalyticsQuery()
)
->columns([
TextColumn::make('user_name')
TextColumn::make('user.name')
->label('Customer')
->searchable()
->sortable()
->weight('medium'),
TextColumn::make('user_email')
TextColumn::make('user.email')
->label('Email')
->searchable()
->copyable()
->toggleable(),
TextColumn::make('plan_name')
TextColumn::make('plan.name')
->label('Plan')
->searchable()
->sortable()
@@ -173,7 +173,7 @@ class CustomerAnalytics extends Page implements HasForms, HasTable
TextColumn::make('subscription_age')
->label('Age')
->formatStateUsing(function ($record) {
->state(function ($record) {
$started = $record->starts_at ?? $record->created_at;
return $started ? $started->diffForHumans() : 'Unknown';
@@ -188,19 +188,20 @@ class CustomerAnalytics extends Page implements HasForms, HasTable
TextColumn::make('trial_extensions_count')
->label('Trial Extensions')
->formatStateUsing(fn ($record) => $record->trial_extensions_count ?? 0)
->state(fn ($record) => $record->trial_extensions_count ?? 0)
->alignCenter()
->toggleable(),
TextColumn::make('subscription_changes_count')
->label('Changes')
->formatStateUsing(fn ($record) => $record->subscription_changes_count ?? 0)
->state(fn ($record) => $record->subscription_changes_count ?? 0)
->alignCenter()
->toggleable(),
TextColumn::make('mrr')
->label('MRR')
->money('USD')
->state(fn ($record) => $record->calculateMRR())
->sortable()
->toggleable(),
])
@@ -226,7 +227,7 @@ class CustomerAnalytics extends Page implements HasForms, HasTable
]),
Filter::make('date_range')
->form([
->schema([
DatePicker::make('start_date')
->label('Start Date')
->required(),
@@ -316,7 +317,7 @@ class CustomerAnalytics extends Page implements HasForms, HasTable
$subscription->couponUsages()->sum('discount_amount'),
$subscription->trialExtensions()->count(),
$subscription->subscriptionChanges()->count(),
$subscription->plan?->monthly_price ?? 0,
$subscription->calculateMRR(),
$subscription->created_at->toDateTimeString(),
$subscription->trial_ends_at?->toDateTimeString() ?? 'N/A',
$subscription->ends_at?->toDateTimeString() ?? 'N/A',