@php $roleLabels = [ 'student' => '生徒', 'staff' => 'スタッフ', 'creator' => '作家・演出', 'choreographer' => '振付', 'school_staff' => '音楽学校関係者', 'other' => 'その他', ]; $rolesText = collect($person->roles ?? []) ->map(fn ($role) => $roleLabels[$role] ?? $role) ->implode(' / '); $performerTypeText = match ($person->performer_type) { 'otokoyaku' => '男役', 'musumeyaku' => '娘役', default => null, }; $topTypeLabels = [ 'top_star' => 'トップスター', 'top_musumeyaku' => 'トップ娘役', ]; $formatPartialDate = function ($year, $month, $day) { if (!$year) { return '?'; } $text = $year . '年'; if ($month) { $text .= $month . '月'; } if ($day) { $text .= $day . '日'; } return $text; }; @endphp

{{ $person->name }}

基本情報

読み:{{ $person->name_kana ?: '未設定' }}

期: @if ($person->classYear) {{ $person->classYear->number }}期 @if ($person->classYear->entrance_year) ({{ $person->classYear->entrance_year }}年入団) @endif @else 未設定 @endif

役柄区分:{{ $performerTypeText ?: '未設定' }}

人物区分:{{ $rolesText ?: '未設定' }}

@if ($person->notes)

備考:{{ $person->notes }}

@endif

所属履歴

@forelse ($person->personTroupes->sortBy('sort_order') as $pt)

{{ $pt->troupe?->name ?? '未設定' }} {{ $pt->joined_year ?: '?' }}〜{{ $pt->left_year ?: '' }}

@empty

未登録

@endforelse
@if ($person->topHistories->isNotEmpty())

トップ就任履歴

@foreach ($person->topHistories->sortBy('sort_order') as $top)
{{ $topTypeLabels[$top->type] ?? $top->type }}

{{ $top->troupe?->name ?? '未設定' }}

{{ $formatPartialDate($top->start_year, $top->start_month, $top->start_day) }} 〜 {{ $formatPartialDate($top->end_year, $top->end_month, $top->end_day) }}

@endforeach
@endif @if ($person->managementHistories->isNotEmpty())

管理職履歴

@foreach ($person->managementHistories as $m)
{{ $m->role_type === 'kumicho' ? '組長' : '副組長' }}

{{ $m->troupe?->name ?? '未設定' }}

{{ $formatPartialDate($m->start_year, $m->start_month, $m->start_day) }} 〜 {{ $formatPartialDate($m->end_year, $m->end_month, $m->end_day) }}

@endforeach
@endif

関連公演

@php $relatedPerformances = $person->performanceRunPeople ->groupBy(fn ($prp) => $prp->performanceRun?->performance?->id); @endphp
@forelse ($relatedPerformances as $performanceId => $items) @php $first = $items->first(); $performance = $first->performanceRun?->performance; $theaters = $items ->map(fn ($item) => $item->performanceRun?->theater) ->filter() ->unique() ->implode(' / '); $works = $items ->map(fn ($item) => $item->performanceWork?->work?->title) ->filter() ->unique() ->implode(' / '); $roles = $items ->map(fn ($item) => $item->role_name) ->filter() ->unique() ->implode(' / '); @endphp

@if ($performance) {{ $performance->display_name }} @else 公演未設定 @endif

上演:{{ $theaters ?: '劇場未設定' }} @if ($works) / 対象作品:{{ $works }} @endif

@if ($roles)

役名・担当:{{ $roles }}

@endif
@empty

未登録

@endforelse