DONE: layout letter with letterhead and footer, notification for newly...
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Activity\Transformers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class ActivityDocumentResource extends JsonResource
|
||||
{
|
||||
public function toArray(Request $request): array
|
||||
{
|
||||
$activityId = $this->documentable_id;
|
||||
|
||||
return [
|
||||
'id' => $this->id,
|
||||
'activity_id' => $activityId,
|
||||
'name' => $this->name,
|
||||
'type' => $this->type,
|
||||
'description' => $this->description,
|
||||
'mime_type' => $this->mime_type,
|
||||
'file_size' => $this->file_size,
|
||||
'uploaded_by' => $this->uploaded_by,
|
||||
'url' => $activityId
|
||||
? url(route('api.activity.download-document', [
|
||||
'activity' => $activityId,
|
||||
'documentId' => $this->id,
|
||||
]))
|
||||
: null,
|
||||
'created_at' => $this->created_at?->toISOString(),
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Activity\Transformers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class ActivityGalleryImageResource extends JsonResource
|
||||
{
|
||||
public function toArray(Request $request): array
|
||||
{
|
||||
$activityId = $this->documentable_id;
|
||||
|
||||
return [
|
||||
'id' => $this->id,
|
||||
'activity_id' => $activityId,
|
||||
'name' => $this->name,
|
||||
'description' => $this->description,
|
||||
'mime_type' => $this->mime_type,
|
||||
'file_size' => $this->file_size,
|
||||
'uploaded_by' => $this->uploaded_by,
|
||||
'url' => $activityId
|
||||
? url(route('api.activity.serve-gallery-image', [
|
||||
'activity' => $activityId,
|
||||
'imageId' => $this->id,
|
||||
]))
|
||||
: null,
|
||||
'created_at' => $this->created_at?->toISOString(),
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Activity\Transformers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class ActivityListResource extends JsonResource
|
||||
{
|
||||
public function toArray(Request $request): array
|
||||
{
|
||||
return [
|
||||
'id' => $this->id,
|
||||
'activity_type_id' => $this->activity_type_id,
|
||||
'activity_type' => new ActivityTypeResource($this->whenLoaded('activityType')),
|
||||
'title' => $this->title,
|
||||
'reference_number' => $this->reference_number,
|
||||
'description' => $this->description,
|
||||
'start_datetime' => $this->start_datetime?->toISOString(),
|
||||
'end_datetime' => $this->end_datetime?->toISOString(),
|
||||
'organizer' => $this->organizer,
|
||||
'location' => $this->location,
|
||||
'is_active' => $this->is_active,
|
||||
'gallery_image_count' => $this->gallery_images_count ?? 0,
|
||||
'documents_count' => $this->attachments_count ?? 0,
|
||||
'cover_image' => $this->when(
|
||||
$this->relationLoaded('galleryImages') && $this->galleryImages->isNotEmpty(),
|
||||
fn () => new ActivityGalleryImageResource($this->galleryImages->first())
|
||||
),
|
||||
'created_at' => $this->created_at?->toISOString(),
|
||||
'updated_at' => $this->updated_at?->toISOString(),
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Activity\Transformers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class ActivityReportResource extends JsonResource
|
||||
{
|
||||
public function toArray(Request $request): array
|
||||
{
|
||||
return [
|
||||
'id' => $this->id,
|
||||
'activity_id' => $this->activity_id,
|
||||
'activity' => new ActivityResource($this->whenLoaded('activity')),
|
||||
'report_text' => $this->report_text,
|
||||
'prepared_by' => $this->prepared_by,
|
||||
'prepared_by_user' => $this->whenLoaded('preparedBy', fn () => [
|
||||
'id' => $this->preparedBy->id,
|
||||
'name' => $this->preparedBy->name,
|
||||
'email' => $this->preparedBy->email,
|
||||
]),
|
||||
'created_at' => $this->created_at?->toISOString(),
|
||||
'updated_at' => $this->updated_at?->toISOString(),
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Activity\Transformers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
use Modules\Activity\Entities\Activity;
|
||||
|
||||
class ActivityResource extends JsonResource
|
||||
{
|
||||
public function toArray(Request $request): array
|
||||
{
|
||||
return [
|
||||
'id' => $this->id,
|
||||
'activity_type_id' => $this->activity_type_id,
|
||||
'activity_type' => new ActivityTypeResource($this->whenLoaded('activityType')),
|
||||
'title' => $this->title,
|
||||
'reference_number' => $this->reference_number,
|
||||
'description' => $this->description,
|
||||
'start_datetime' => $this->start_datetime?->toISOString(),
|
||||
'end_datetime' => $this->end_datetime?->toISOString(),
|
||||
'organizer' => $this->organizer,
|
||||
'location' => $this->location,
|
||||
'is_active' => $this->is_active,
|
||||
'documents' => $this->when(
|
||||
$this->relationLoaded('documents'),
|
||||
fn () => ActivityDocumentResource::collection($this->attachmentDocuments())
|
||||
),
|
||||
'gallery_images' => $this->when(
|
||||
$this->relationLoaded('documents'),
|
||||
fn () => ActivityGalleryImageResource::collection($this->galleryDocuments())
|
||||
),
|
||||
'reports' => ActivityReportResource::collection($this->whenLoaded('reports')),
|
||||
'created_at' => $this->created_at?->toISOString(),
|
||||
'updated_at' => $this->updated_at?->toISOString(),
|
||||
];
|
||||
}
|
||||
|
||||
protected function galleryDocuments()
|
||||
{
|
||||
return $this->documents
|
||||
->where('type', Activity::GALLERY_DOCUMENT_TYPE)
|
||||
->values();
|
||||
}
|
||||
|
||||
protected function attachmentDocuments()
|
||||
{
|
||||
return $this->documents
|
||||
->where('type', '!=', Activity::GALLERY_DOCUMENT_TYPE)
|
||||
->values();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Activity\Transformers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class ActivityTypeResource extends JsonResource
|
||||
{
|
||||
public function toArray(Request $request): array
|
||||
{
|
||||
return [
|
||||
'id' => $this->id,
|
||||
'name' => $this->name,
|
||||
'code' => $this->code,
|
||||
'created_at' => $this->created_at?->toISOString(),
|
||||
'updated_at' => $this->updated_at?->toISOString(),
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user