<?php

namespace App\Filament\Widgets;

use App\Models\TourPurchase;
use Filament\Tables;
use Filament\Tables\Table;
use Filament\Widgets\TableWidget as BaseWidget;
use Illuminate\Database\Eloquent\Builder;

class TodayBookings extends BaseWidget
{
    protected static ?string $heading = 'Reservas para Hoje';
    protected int|string|array $columnSpan = 'full';

    public function table(Table $table): Table
    {
        return $table
            ->query(
                TourPurchase::query()
                    ->whereDate('paid_at', today())
                    ->latest()
            )
            ->columns([
                Tables\Columns\TextColumn::make('tour.name')
                    ->searchable()
                    ->sortable(),
                Tables\Columns\TextColumn::make('customer_name')
                    ->searchable()
                    ->sortable(),
                Tables\Columns\TextColumn::make('customer_email')
                    ->searchable(),
                Tables\Columns\TextColumn::make('paid_at')
                    ->dateTime('H:i')
                    ->sortable(),
                Tables\Columns\TextColumn::make('participants')
                    ->sortable(),
                Tables\Columns\TextColumn::make('total_price')
                    ->money('EUR')
                    ->sortable(),
                Tables\Columns\BadgeColumn::make('status')
                    ->colors([
                        'warning' => 'pending',
                        'success' => 'confirmed',
                        'danger' => 'cancelled',
                    ]),
            ])
            ->defaultSort('paid_at', 'asc')
            ->paginated(false);
    }
} 