chore: fix mrr calculation and grid import
This commit is contained in:
@@ -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',
|
||||
|
||||
Reference in New Issue
Block a user