@extends('admin.layouts.admin') @section('title', 'Recetas') @php $fmt = fn ($v) => $v !== null ? rtrim(rtrim(number_format((float) $v, 3, ',', '.'), '0'), ',') : null; $statusBadge = ['published' => 'badge-active', 'draft' => 'badge-paused', 'pending' => 'badge-warn', 'rejected' => 'badge-warn']; @endphp @section('content')
Recetas

Todas las recetas del catálogo.

+ Nueva receta
{{-- Filtros --}}
@if($categoryId || $fermentId) Limpiar @endif
@forelse($recipes as $recipe) @empty @endforelse
Imagen Receta Fermento Categoría Rinde Ingr. Lotes Estado Acciones
@if($recipe->image_url) {{ $recipe->name }} @else — @endif
{{ $recipe->name }} @if($recipe->is_official) oficial @endif
{{ $recipe->slug }}
{{ $recipe->guide?->name ?? '—' }} @if($recipe->guide?->category) {{ $recipe->guide->category->name }} @else — @endif @if($recipe->base_yield_value){{ $fmt($recipe->base_yield_value) }} {{ $recipe->base_yield_unit }}@else—@endif {{ $recipe->ingredients_count }} {{ $recipe->batches_count }} {{ $recipe->status }}
Editar @if($recipe->batches_count === 0 && $recipe->guide_id)
@csrf @method('DELETE')
@endif
No hay recetas con esos filtros.
@if($recipes->hasPages())
{{ $recipes->links() }}
@endif
{{-- Modal de duplicar: pide el nombre nuevo (slug limpio de entrada), valida en el sitio y reabre con el error de colisión sin perder el gesto. --}} @endsection @push('scripts') @endpush