<?php

namespace App\Filament\Tenant\Resources\TireSetResource\RelationManagers;

use App\Models\Tenant\TireStorage;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables;
use Filament\Tables\Table;

class StorageRelationManager extends RelationManager
{
    protected static string $relationship = 'storage';

    protected static ?string $title = 'Istoric depozitare';

    public function table(Table $table): Table
    {
        return $table
            ->columns([
                Tables\Columns\TextColumn::make('season_label')->label('Perioadă')->placeholder('—'),
                Tables\Columns\TextColumn::make('location')->label('Locație')->placeholder('—'),
                Tables\Columns\TextColumn::make('checked_in_at')->label('Primit')->dateTime('d.m.Y'),
                Tables\Columns\TextColumn::make('checked_out_at')->label('Ridicat')->dateTime('d.m.Y')->placeholder('—'),
                Tables\Columns\TextColumn::make('status')
                    ->formatStateUsing(fn ($s) => TireStorage::STATUSES[$s] ?? $s)
                    ->badge()
                    ->colors(['success' => ['stored'], 'gray' => ['retrieved']]),
                Tables\Columns\TextColumn::make('fee')->money('MDL')->alignRight(),
                Tables\Columns\IconColumn::make('paid')->label('Plătit')->boolean(),
            ])
            ->defaultSort('checked_in_at', 'desc')
            ->emptyStateHeading('Niciun istoric')
            ->emptyStateDescription('Folosește „Check-in depozit" pe set pentru a înregistra prima depozitare.');
    }
}
