@php $campaign = $campaign ?? null; $selectedVideos = old('video_ids', $campaign?->videos->pluck('id')->all() ?? []); $selectedVideos = array_values(array_pad(array_map('strval', $selectedVideos), 3, '')); $selectedPoints = old('wifi_point_ids', $campaign?->wifiPoints->pluck('id')->all() ?? []); @endphp @if (auth()->user()->isAdmin() && ! $campaign)
@error('advertiser_id')

{{ $message }}

@enderror
@endif
@error('name')

{{ $message }}

@enderror
@error('description')

{{ $message }}

@enderror
@error('starts_at')

{{ $message }}

@enderror
@error('ends_at')

{{ $message }}

@enderror

Preenche limite e quantidade contratada se estiverem vazios.

@error('plan_id')

{{ $message }}

@enderror

Quando atinge o limite, a campanha pausa. Com várias campanhas no mesmo ponto, a rotação usa a quantidade contratada como peso — não roda uma até acabar.

@error('impression_limit')

{{ $message }}

@enderror

Define o peso no balanceamento entre campanhas do mesmo ponto. Ex.: 100 vs 200 ≈ 1 impressão para cada 2 da outra.

@error('contracted_quantity')

{{ $message }}

@enderror
Vídeos publicados @if ($videos->isEmpty())

Não há vídeo publicado disponível. Aprove e publique uma peça antes de criar a campanha.

@else

Até {{ \App\Services\CampaignService::MAX_VIDEOS }} peças por campanha — TikTok, Instagram ou MP4. O portal alterna entre elas; todas contam para a mesma campanha.

@for ($slot = 0; $slot < \App\Services\CampaignService::MAX_VIDEOS; $slot++)
@endfor @endif @error('video_ids')

{{ $message }}

@enderror @error('video_ids.*')

{{ $message }}

@enderror
Pontos de Wi-Fi @if ($points->isEmpty())

Nenhum ponto ativo. O administrador precisa cadastrar a rede primeiro.

@else
@foreach ($points as $point) @endforeach
@endif @error('wifi_point_ids')

{{ $message }}

@enderror