<?php

namespace App\Libs\Transformers\Member;

use App\Models\Member;
use League\Fractal;

class MemberTransformer extends Fractal\TransformerAbstract {
    public function transform(Member $member) {
        $types = [];

        if (!empty($member->member_type)) {
            $types[] = $member->member_type === 'regular' ? 'R' : 'Assoc.';
        }

        if (!empty($member->legal_committee)) {
            $types[] = 'LC';
        }

        if (!empty($member->legal_opinions)) {
            $types[] = 'LO';
        }

        $workGroups = [];
        foreach ($member->workGroups as $value) {
            $workGroups[] = $value->title;
        }

        return array(
            'id' => $member->id,
            'name' => $member->name,
            'country' => $member->country->code,
            'created_at' => $member->created_at,
            'notes' => $member->notes,
            'types' => implode(', ', $types),
            'committees' => implode(', ', $workGroups),
            'users' => (int) $member->users->count(),
            'state' => $member->state,
            'memberId' => $member->id,
        );
    }
}
