<?php

namespace App\Transformer\ActivityPub\Verb;

use App\Status;
use League\Fractal;

class UndoAnnounce extends Fractal\TransformerAbstract
{
    public function transform(Status $status)
    {
        return [
            '@context' => 'https://www.w3.org/ns/activitystreams',
            'id' => $status->permalink('/undo'),
            'actor' => $status->profile->permalink(),
            'type' => 'Undo',
            'object' => [
                'id' => $status->permalink(),
                'type' => 'Announce',
                'actor' => $status->profile->permalink(),
                'to' => ['https://www.w3.org/ns/activitystreams#Public'],
                'cc' => [
                    $status->profile->permalink(),
                    $status->profile->follower_url ?? $status->profile->permalink('/followers'),
                ],
                'published' => $status->created_at->format(DATE_ISO8601),
                'object' => $status->parent()->url(),
            ],
        ];
    }
}
