<?php

namespace App\Filament\Resources\SopTemplateResource\Pages;

use App\Filament\Resources\SopTemplateResource;
use Filament\Actions;
use Filament\Resources\Pages\ViewRecord;
use Filament\Infolists;
use Filament\Infolists\Infolist;

class ViewSopTemplate extends ViewRecord
{
    protected static string $resource = SopTemplateResource::class;

    protected function getHeaderActions(): array
    {
        return [
            Actions\EditAction::make(),
        ];
    }

    public function infolist(Infolist $infolist): Infolist
    {
        return $infolist
            ->schema([
                Infolists\Components\Section::make('基本信息')
                    ->schema([
                        Infolists\Components\TextEntry::make('name')
                            ->label('模板名称'),
                        
                        Infolists\Components\TextEntry::make('description')
                            ->label('模板描述')
                            ->columnSpanFull(),
                        
                        Infolists\Components\TextEntry::make('category')
                            ->label('分类')
                            ->badge()
                            ->color('info'),
                        
                        Infolists\Components\TextEntry::make('tags')
                            ->label('标签')
                            ->badge()
                            ->separator(','),
                        
                        Infolists\Components\TextEntry::make('version')
                            ->label('版本号'),
                        
                        Infolists\Components\TextEntry::make('status')
                            ->label('状态')
                            ->badge()
                            ->color(fn (string $state): string => match ($state) {
                                'draft' => 'gray',
                                'published' => 'success',
                                'archived' => 'warning',
                            })
                            ->formatStateUsing(fn (string $state): string => match ($state) {
                                'draft' => '草稿',
                                'published' => '已发布',
                                'archived' => '已归档',
                                default => $state,
                            }),
                    ])
                    ->columns(2),

                Infolists\Components\Section::make('适用范围')
                    ->schema([
                        Infolists\Components\TextEntry::make('applicable_departments')
                            ->label('适用部门')
                            ->badge()
                            ->separator(','),
                        
                        Infolists\Components\TextEntry::make('applicable_positions')
                            ->label('适用岗位')
                            ->badge()
                            ->separator(','),
                    ])
                    ->columns(2),

                Infolists\Components\Section::make('其他信息')
                    ->schema([
                        Infolists\Components\TextEntry::make('creator.name')
                            ->label('创建人'),
                        
                        Infolists\Components\TextEntry::make('published_at')
                            ->label('发布时间')
                            ->dateTime('Y-m-d H:i'),
                        
                        Infolists\Components\TextEntry::make('created_at')
                            ->label('创建时间')
                            ->dateTime('Y-m-d H:i'),
                        
                        Infolists\Components\TextEntry::make('updated_at')
                            ->label('更新时间')
                            ->dateTime('Y-m-d H:i'),
                    ])
                    ->columns(2),
            ]);
    }
}
