<?php

namespace App\Transformer\ActivityPub\Verb;

use App\Status;
use League\Fractal;
use Illuminate\Support\Str;

class CreateQuestion extends Fractal\TransformerAbstract
{
	protected $defaultIncludes = [
        'object',
    ];

	public function transform(Status $status)
	{
		return [
			'@context' => [
				'https://www.w3.org/ns/activitystreams',
				'https://w3id.org/security/v1',
				[
					'sc'				=> 'http://schema.org#',
					'Hashtag' 			=> 'as:Hashtag',
					'sensitive' 		=> 'as:sensitive',
					'commentsEnabled' 	=> 'sc:Boolean',
					'capabilities'		=> [
						'announce'		=> ['@type' => '@id'],
						'like'			=> ['@type' => '@id'],
						'reply'			=> ['@type' => '@id']
					]
				]
			],
			'id' 					=> $status->permalink(),
			'type' 					=> 'Create',
			'actor' 				=> $status->profile->permalink(),
			'published' 			=> $status->created_at->toAtomString(),
			'to' 					=> $status->scopeToAudience('to'),
			'cc' 					=> $status->scopeToAudience('cc'),
		];
	}

	public function includeObject(Status $status)
	{
		return $this->item($status, new Question());
	}
}
