%PDF- %PDF-
Direktori : /var/www/html/workeasy-api/app/Transformers/ |
Current File : /var/www/html/workeasy-api/app/Transformers/OfferTransformer.php |
<?php namespace Workeasy\Transformers; use Workeasy\Models\Interview; use Workeasy\Models\Offer; /** * Created by PhpStorm. * User: User * Date: 1/26/2018 * Time: 3:31 PM */ class OfferTransformer extends BaseTransformer { protected $availableIncludes = [ 'company', 'media', 'interviews', 'candidates', ]; public function includeCompany(Offer $offer) { if ($company = $offer->company) { return $this->item($company, new CompanyTransformer, 'company'); } return null; } public function includeInterviews(Offer $offer) { if ($interviews = $offer->interviews) { return $this->collection($interviews, new InterviewTransformer, 'interviews'); } return null; } public function includeMedia(Offer $offer) { if ($media = $offer->media()->first()) { return $this->item($media, new MediaTransformer, 'media'); }else { $job = $offer->jobPosition()->first(); $media= $job->media()->first(); return $this->item($media, new MediaTransformer, 'media'); } } public function includeCandidates(Offer $offer) { return $this->collection($offer->candidates, new CandidateTransformer, 'candidates'); } public function transform(Offer $offer) { $data = $this->transformColumns($offer); $data['candidates_count'] = $offer->candidates()->where('status', Interview::PENDING)->count(); // return $data; $data['candidates_accepted'] = $offer->candidates()->where('status', Interview::ACCEPTED)->count(); return $data; } protected function getTransformableColumns() { return [ 'id' => 'id', 'name' => 'name', 'start_date' => 'start_date', 'end_date' => 'end_date', 'contract_id' => 'contract_id', 'job_id' => 'job_id', 'company_id' => 'company_id', 'description' => 'description', 'created_at' => 'created_at', 'updated_at' => 'updated_at', ]; } }