<?php

namespace App\Filament\Resources\ProductResource\RelationManagers;

use Filament\Actions;
use Filament\Forms;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Schemas\Schema;
use Filament\Tables;
use Filament\Tables\Table;

class PricingTiersRelationManager extends RelationManager
{
    protected static string $relationship = 'pricingTiers';

    protected static ?string $title = 'الشرائح السعرية';

    protected static ?string $modelLabel = 'شريحة سعرية';

    public function form(Schema $schema): Schema
    {
        return $schema
            ->components([
                Forms\Components\TextInput::make('min_qty')
                    ->label('الحد الأدنى للكمية')
                    ->numeric()
                    ->required()
                    ->minValue(1),

                Forms\Components\TextInput::make('max_qty')
                    ->label('الحد الأقصى للكمية')
                    ->numeric()
                    ->nullable()
                    ->helperText('اتركه فارغاً إذا كانت الشريحة مفتوحة'),

                Forms\Components\TextInput::make('unit_price')
                    ->label('سعر الوحدة (ج.م)')
                    ->numeric()
                    ->prefix('ج.م')
                    ->required()
                    ->minValue(0),
            ]);
    }

    public function table(Table $table): Table
    {
        return $table
            ->recordTitleAttribute('min_qty')
            ->columns([
                Tables\Columns\TextColumn::make('min_qty')
                    ->label('من (كمية)')
                    ->sortable(),

                Tables\Columns\TextColumn::make('max_qty')
                    ->label('إلى (كمية)')
                    ->placeholder('بلا حد')
                    ->sortable(),

                Tables\Columns\TextColumn::make('unit_price')
                    ->label('سعر الوحدة (ج.م)')
                    ->money('EGP')
                    ->sortable(),
            ])
            ->defaultSort('min_qty', 'asc')
            ->headerActions([
                Actions\CreateAction::make()->label('إضافة شريحة'),
            ])
            ->actions([
                Actions\EditAction::make()->label('تعديل'),
                Actions\DeleteAction::make()->label('حذف'),
            ])
            ->bulkActions([
                Actions\BulkActionGroup::make([
                    Actions\DeleteBulkAction::make()->label('حذف المحدد'),
                ]),
            ]);
    }
}
