<?php

declare(strict_types=1);

namespace App\Filament\Exports;

use App\Models\Payment;
use Filament\Actions\Exports\ExportColumn;
use Filament\Actions\Exports\Exporter;
use Filament\Actions\Exports\Models\Export;

class PaymentExporter extends Exporter
{
    protected static ?string $model = Payment::class;

    public static function getCompletedNotificationBody(Export $export): string
    {
        return __('filament-actions::export.notifications.completed.body', [
            'count' => $export->getProcessedRowsCount(),
        ]);
    }

    public static function getColumns(): array
    {
        return [
            ExportColumn::make('id')->label('شناسه'),
            ExportColumn::make('user_id')->label('کاربر')->getStateUsing(fn (Payment $record) => $record->user?->getFilamentName()),
            ExportColumn::make('project_id')->label('پروژه')->getStateUsing(fn (Payment $record) => $record->project?->name),
            ExportColumn::make('transaction_id')->label('شناسه تراکنش'),
            ExportColumn::make('ref_id')->label('کد پیگیری'),
            ExportColumn::make('price')->label('مبلغ'),
            ExportColumn::make('cellphone')->label('شماره همراه'),
            ExportColumn::make('email')->label('ایمیل'),
            ExportColumn::make('card_number')->label('شماره کارت'),
            ExportColumn::make('gateway')->label('درگاه'),
            ExportColumn::make('status')->label('وضعیت'),
            ExportColumn::make('created_at')->label('تاریخ ایجاد'),
        ];
    }
}
