Files
SpiceManagementSystem/app/Http/Resources/LotResource.php
T
Malek TellissiandClaude Sonnet 4.6 e14baca7e0
Deploy / deploy (push) Successful in 15s
Add LOT API v1 endpoint with full batch details
Route changed to /api/v1/{lot_number}. LotResource now includes
packing details, units_produced, quantity_g and recipe version.
CORS config added for public API access. README documents the
endpoint, example response and subdomain setup instructions.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-09-12 16:43:48 +02:00

49 lines
1.8 KiB
PHP

<?php
namespace App\Http\Resources;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class LotResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'lot_number' => $this->lot_number,
'produced_at' => $this->produced_at?->toDateString(),
'expires_at' => $this->expires_at?->toDateString(),
'units_produced' => $this->units_produced,
'quantity_g' => (float) $this->quantity_g,
'product' => [
'name' => $this->product->title,
'description' => $this->product->description,
],
'packing' => $this->size ? [
'name' => $this->size->packing->name,
'size_g' => (float) $this->size->packing->size,
'sku' => $this->size->sku,
'gtin' => $this->size->gtin,
] : null,
'recipe' => [
'version' => $this->recipe->version,
'created_at' => $this->recipe->created_at->toDateString(),
],
'spices' => $this->recipe->spices->map(function ($spice) {
$origin = $this->origins->firstWhere('spice_id', $spice->id);
return [
'name' => $spice->name,
'percentage' => (float) $spice->pivot->amount_in_percent,
'origin' => $origin ? [
'country' => $origin->origin_country,
'farmer' => $origin->farmer,
'supplier' => $origin->supplier?->name,
'notes' => $origin->notes,
] : null,
];
})->values(),
];
}
}