@extends('web.signup.layout') @section('title', __('web.signup.investor.page_title')) @section('page_title', __('web.signup.investor.page_title')) @section('page_subtitle', __('web.signup.investor.page_subtitle')) @push('styles') @endpush @section('content') @php // Section -> required field names (used to drive the progress pills). $sections = [ ['id' => 'personal', 'fields' => ['first_name', 'last_name', 'country_id', 'phone_number', 'email']], ['id' => 'background', 'fields' => ['about', 'linkedin_url']], ['id' => 'preferences', 'fields' => ['stage_option_ids', 'sector_option_ids', 'expected_yearly_investments_option_id', 'average_ticket_option_id']], ['id' => 'experience', 'fields' => ['has_angel_invested_option_id', 'investment_knowledge_option_id', 'is_in_other_angel_group_option_id']], ['id' => 'source', 'fields' => ['how_heard_option_id']], ]; @endphp
@if (session('status'))
{{ session('status') }}
@endif @if ($errors->any()) @endif
@csrf {{-- ════════════════════════════════════════════════════════ --}} {{-- Section 1 — Personal info --}} {{-- ════════════════════════════════════════════════════════ --}}

{{ __('web.signup.investor.sections.identity') }}

{{ __('web.signup.investor.subtitles.personal') }}

@error('first_name')

{{ $message }}

@enderror
@error('last_name')

{{ $message }}

@enderror
{{-- Each option carries `data-phone-code` so the phone-code uses the option's value (=country id) to filter its own options. --}} @error('country_id')

{{ $message }}

@enderror
{{-- Cities carry `data-country-id` so the JS can hide rows that don't belong to the currently selected country. Hidden options are disabled too so a `` submit can't sneak the wrong row in via dev-tools. --}}
@php // Default to the first DB-seeded country. If the table is // empty (shouldn't happen — seeder runs in migration), the // @foreach ($countries as $c) @endforeach
@error('phone_number')

{{ $message }}

@enderror
@error('email')

{{ $message }}

@enderror
{{-- ── Optional profile photo ────────────────────────── The user can skip this — server-side rule is `nullable|image|mimes:jpg,jpeg,png,webp|max:5120`. A small client-side preview reassures the user the right file got picked before they submit (no upload happens client-side — it just renders the chosen File via `URL.createObjectURL`). The chosen file survives a server-side validation error only on the server's terms; we don't try to round-trip it through `old()`. --}}

{{ __('web.signup.investor.hints.avatar') }}

@error('avatar')

{{ $message }}

@enderror
{{-- ════════════════════════════════════════════════════════ --}} {{-- Section 2 — Background --}} {{-- ════════════════════════════════════════════════════════ --}}

{{ __('web.signup.investor.sections.background') }}

{{ __('web.signup.investor.subtitles.background') }}

@error('about')

{{ $message }}

@enderror
@error('linkedin_url')

{{ $message }}

@enderror
{{-- ════════════════════════════════════════════════════════ --}} {{-- Section 3 — Investment preferences --}} {{-- ════════════════════════════════════════════════════════ --}}

{{ __('web.signup.investor.sections.preferences') }}

{{ __('web.signup.investor.subtitles.preferences') }}

{{-- Investment stages (multi) --}}
@php $oldStages = (array) old('stage_option_ids', []); @endphp
@error('stage_option_ids')

{{ $message }}

@enderror
{{-- Sectors (multi) --}}
@php $oldSectors = (array) old('sector_option_ids', []); @endphp
@error('sector_option_ids')

{{ $message }}

@enderror
@error('expected_yearly_investments_option_id')

{{ $message }}

@enderror
@error('average_ticket_option_id')

{{ $message }}

@enderror
{{-- ════════════════════════════════════════════════════════ --}} {{-- Section 4 — Experience --}} {{-- ════════════════════════════════════════════════════════ --}}

{{ __('web.signup.investor.sections.experience') }}

{{ __('web.signup.investor.subtitles.experience') }}

{{ __('web.signup.investor.fields.has_angel_invested') }} *
@foreach ($angelInvestedOptions as $id => $label) @endforeach
@error('has_angel_invested_option_id')

{{ $message }}

@enderror
{{-- Conditional reveal: shown ONLY when the user picked the "Yes" option for has_angel_invested. The "Yes" option id is resolved server-side at render time (see InvestorSignupController::create) so we never hardcode label_options.id values in JS. --}}
@php $oldMethods = (array) old('investment_method_option_ids', []); @endphp
{{-- ── Companies repeater ────────────────────────── Names of startups the investor previously backed. Bound to the Alpine `companies` array; each row submits `previous_investments_companies[]`. Validation: required + min:1 when this branch is visible (handled server-side by InvestorSignupRequest). --}}
@error('previous_investments_companies')

{{ $message }}

@enderror @error('previous_investments_companies.*')

{{ $message }}

@enderror
@error('investment_knowledge_option_id')

{{ $message }}

@enderror
@if (! empty($hasExitOptions))
{{ __('web.signup.investor.fields.has_exit_option_id') }} *
@foreach ($hasExitOptions as $id => $label) @endforeach
@error('has_exit_option_id')

{{ $message }}

@enderror
@endif
{{ __('web.signup.investor.fields.in_other_group_option_id') }} *
@foreach ($otherGroupOptions as $id => $label) @endforeach
@error('is_in_other_angel_group_option_id')

{{ $message }}

@enderror
@if (! empty($attendWorkshopsOptions))
{{ __('web.signup.investor.fields.attend_workshops_option_id') }} *
@foreach ($attendWorkshopsOptions as $id => $label) @endforeach
@error('attend_workshops_option_id')

{{ $message }}

@enderror
@endif
{{-- ════════════════════════════════════════════════════════ --}} {{-- Section 5 — How heard + consent --}} {{-- ════════════════════════════════════════════════════════ --}}

{{ __('web.signup.investor.sections.extra') }}

{{ __('web.signup.investor.subtitles.source') }}

@error('how_heard_option_id')

{{ $message }}

@enderror
{{-- Privacy-policy consent --}}
@include('web.signup.partials.privacy-consent')
{{-- Consent Mode v2 and pseudonymous GA identifiers. Populated by the shared signup layout; no contact data is written here. --}} {{-- Submit --}}
{{ __('web.signup.common.secure_data') }}
@endsection @push('scripts') @endpush