<?php

declare(strict_types=1);

return [
    'airline_information'              => 'Airline Information',
    'airport_information'              => 'Airport Information',
    'awards_information'               => 'Awards Information',
    'awards_description'               => "These are the awards that pilots can earn. Each award is assigned an award class, which will be run whenever a pilot's stats are changed, including after a PIREP is accepted.",
    'award_class'                      => 'Award Class',
    'award_class_param'                => 'Award Class parameters',
    'awarded'                          => 'Awarded',
    'fare_information'                 => 'Fare Information',
    'fare_description'                 => 'When a fare is assigned to a subfleet, the price, cost and capacity can be overridden, so you can create default values that will apply to most of your subfleets, and change them where they will differ.',
    'fare_price_hint'                  => 'This is the price of a ticket per unit (passenger or kg)',
    'fare_cost_hint'                   => 'The operating cost per unit (passenger or kg)',
    'fare_capacity_hint'               => 'Max seats or capacity available. This can be adjusted in the subfleet',
    'flight_information'               => 'Flight Information',
    'flight_pilot_pay_hint'            => 'Fill this in to pay a pilot a fixed amount for this flight.',
    'flight_load_factor_hint'          => 'Percentage value for pax/cargo load, leave blank to use the default value.',
    'flight_load_factor_variance_hint' => 'Percentage of how much the load can vary (+/-), leave blank to use the default value.',
    'scheduling'                       => 'Scheduling',
    'invite_email_hint'                => 'If empty all emails will be allowed to register using the link.',
    'invite_email_link_hint'           => 'If enabled an email will be sent to the email address above with the invite link.',
    'module_information'               => 'Module Information',
    'module_description'               => 'If you choose to upload a module zip file it will be installed and enabled automatically. Please not that module folder must be on top level of the zip and the zip name must be EXACTLY equal to the name of the module folder inside. If you choose to enable an already uploaded module, you have to upload it in the modules folder.',
    'module_method'                    => 'Method',
    'module_method_zip'                => 'Upload module zip file (Not Recommended)',
    'module_method_autodiscover'       => 'Enable new module (already uploaded in modules folder).',
    'module_zip'                       => 'Module zip file',
    'page_information'                 => 'Page Information',
    'should_open_in_new_tab'           => 'Should open in a new tab',
    'recalculate_finances'             => 'Recalculate finances',
    'finances_recalculated'            => 'Finances recalculated',
    'basic_information'                => 'Basic Information',
    'pirep_details'                    => 'PIREP Details',
    'planned_details'                  => 'Planned Details',
    'filed_after'                      => 'Filed after',
    'filed_before'                     => 'Filed before',
    'rank_information'                 => 'Rank Information',
    'rank_acars_base_pay_rate'         => 'ACARS Base Pay Rate',
    'rank_acars_base_pay_rate_hint'    => 'Base rate, per-flight hour, for ACARS PIREPs. Can be adjusted via a multiplier on the subfleet.',
    'rank_manual_base_pay_rate'        => 'Manual Base Pay Rate',
    'rank_manual_base_pay_rate_hint'   => 'Base rate, per-flight hour, for manually-filed PIREPs. Can be adjusted via a multiplier on the subfleet.',
    'rank_auto_approve_acars'          => 'Auto Approve ACARS PIREPs',
    'rank_auto_approve_manual'         => 'Auto Approve Manual PIREPs',
    'rank_auto_promote'                => 'Auto Promote',
    'rank_auto_promote_hint'           => "When a pilot reaches these hours, they'll be upgraded to this rank",
    'subfleet_information'             => 'Subfleet Information',
    'subfleet_description'             => 'Subfleets are aircraft groups. The "type" is a short name. Airlines always group aircraft together by feature, so 737s with winglets might have a type of "B.738-WL". You can create as many as you want, you need at least one, though. Read more about subfleets in the docs.',
    'subfleet_expense_multiplier_hint' => 'This is the multiplier for all expenses (inc GH costs) being applied to aircraft in this subfleet, as a percentage. Defaults to 100.',
    'subfleets'                        => [
        'fields' => [
            'cruise_speed'        => 'Cruise Speed',
            'cruise_speed_helper' => 'Leave blank to use the default ('.config('phpvms.routeforge.cruise_speed_kt', 450).' kt).',
            'max_range_nm'        => 'Max Range',
            'max_range_nm_helper' => 'Leave blank for unrestricted range.',
            'route_types'         => 'Route Types',
            'route_types_helper'  => 'Leave empty to allow all flight types.',
        ],
        'sections' => [
            'operational_capability' => 'Operational Capability',
        ],
    ],
    'aircraft_information'               => 'Aircraft Information',
    'certified_weights'                  => 'Certified Weights',
    'typerating_information'             => 'Typerating Information',
    'user_field_private'                 => 'Private (Only Visible To Admins)',
    'user_field_show_on_registration'    => 'Show on registration',
    'user_verify_email'                  => 'Verify Email',
    'user_email_verified'                => 'Email Verified',
    'user_request_email_verification'    => 'Request Email Verification',
    'user_email_verification_requested'  => 'Email Verification Requested',
    'location_information'               => 'Location Information',
    'user_information'                   => 'User Information',
    'maintenance_cron_setup'             => 'Cron Setup',
    'maintenance_cron_run_recently'      => 'Has the cron been run recently?',
    'maintenance_cron_command'           => 'Cron Command',
    'maintenance_cron_command_hint'      => "A cron must be created that runs every minute calling artisan. Here's an example command.",
    'maintenance_cron_web_url'           => 'Web Cron URL',
    'maintenance_cron_web_url_hint'      => "If you don't have cron access on your server, you can use a web-cron service to access this URL every minute. Keep it disabled if you're not using it. It's a unique ID that can be reset/changed if needed for security.",
    'maintenance_cron_change_id'         => 'Enable/Change ID',
    'maintenance_cron_web_updated'       => 'Web cron settings updated',
    'maintenance_check_update'           => 'Check for phpvms updates',
    'maintenance_phpvms_is_up_to_date'   => 'Your phpvms is up to date',
    'maintenance_new_version_available'  => 'New version available: :version',
    'maintenance_current_version'        => 'Current version: :version',
    'maintenance_clear_cache'            => 'Clear cache',
    'maintenance_cache_cleared'          => 'Cache cleared',
    'maintenance_cache_clear_failed'     => 'Failed to clear caches',
    'maintenance_recommend_optimize'     => "We recommend using 'Optimize App' in order to improve performance and rebuild the cache.",
    'maintenance_optimize_app'           => 'Optimize App',
    'maintenance_app_optimized'          => 'Application optimized',
    'maintenance_flush_failed_jobs'      => 'Flush failed jobs',
    'maintenance_failed_jobs_flushed'    => 'Failed jobs flushed',
    'maintenance_resync_all_seeds'       => 'Resync all seeds',
    'maintenance_seeds_resynced'         => 'All seeds resynced',
    'maintenance_update_database'        => 'Update database',
    'maintenance_database_is_up_to_date' => 'Your database is up to date',
    'config'                             => 'Config',
    'operations'                         => 'Operations',
    'addons'                             => 'Add-Ons',
    'developers'                         => 'Developers',
    'today'                              => 'Today',
    'this_week'                          => 'This week',
    'this_month'                         => 'This month',
    'this_year'                          => 'This year',
    'pireps_field'                       => 'PIREPs Filed',
    'news_subject'                       => 'Subject',
    'news_body'                          => 'Body',
    'news_send_notifications'            => 'Send Notifications',
    'login_heading'                      => 'Welcome back',
    'login_subtitle'                     => 'Sign in to manage your virtual airline.',
    'bundles'                            => [
        'label'                  => 'Flight Bundle',
        'nav_label'              => 'Flight Bundles',
        'sections'               => ['details' => 'Bundle Details'],
        'default_enabled_locked' => 'The default bundle cannot be disabled.',
        'fields'                 => [
            'name'              => 'Name',
            'description'       => 'Description',
            'enabled'           => 'Enabled',
            'visible'           => 'Visible',
            'flights_count'     => 'Flights (active / inactive)',
            'created_by'        => 'Created By',
            'start_date_helper' => 'Optional. When set, overrides individual flight start dates within this bundle.',
            'end_date_helper'   => 'Optional. When set, overrides individual flight end dates within this bundle.',
        ],
    ],
    'flights' => [
        'navigation_label'           => 'Flights',
        'fields'                     => ['bundle' => 'Flight Bundle'],
        'bundle_owned_dates_message' => "Date pickers are hidden because this flight's bundle <a href=\":url\" class=\"text-primary-600 hover:underline\">:bundle</a> owns its schedule window (:start to :end). Edit the bundle to change dates.",
        'status'                     => [
            'enabled_in_window'     => 'Enabled & In Window',
            'enabled_out_of_window' => 'Enabled, Out of Window',
            'disabled'              => 'Disabled',
            'disabled_by_bundle'    => 'Disabled by Bundle',
        ],
        'bulk_actions' => [
            'move_to_bundle'   => 'Move to Bundle',
            'attach_subfleets' => 'Attach Subfleets',
            'detach_subfleets' => 'Detach Subfleets',
            'subfleets_field'  => 'Subfleets',
        ],
        'notifications' => [
            'enabled'  => ':count flights enabled.',
            'disabled' => ':count flights disabled.',
            'moved'    => ':count flights moved to :bundle.',
            'attached' => 'Attached :subfleets subfleet(s) to :count flights.',
            'detached' => 'Detached :subfleets subfleet(s) from :count flights.',
        ],
    ],
    'routeforge' => [
        'default_bundle_name' => 'Default',
        'page_title'          => 'RouteForge',
        'navigation_label'    => 'RouteForge',
        'page_subtitle'       => 'Compose a batch of scheduled flights across a chosen topology, preview the rows, lint for operational issues, and commit them as a single Flight Bundle.',

        'form' => [
            'topology'               => 'Topology',
            'route_preset'           => 'Route preset',
            'frequency_preset'       => 'Frequency preset',
            'origins'                => 'Origins',
            'destinations'           => 'Destinations',
            'airline'                => 'Airline',
            'subfleets'              => 'Subfleets',
            'flight_type'            => 'Flight type',
            'event'                  => 'Event',
            'days'                   => 'Days',
            'time_strategy'          => 'Time strategy',
            'flight_number_strategy' => 'Flight number strategy',
            'bundle_config'          => 'Bundle config',
        ],

        'topology_options' => [
            'hub_spokes'     => 'Hub → Spokes',
            'spokes_hub'     => 'Spokes → Hub',
            'hub_and_spokes' => 'Hub & Spokes (auto returns)',
            'mesh'           => 'Mesh',
            'chain'          => 'Chain',
        ],

        'topology_helper' => [
            'hub_spokes'     => 'One origin, many destinations. One leg per destination.',
            'spokes_hub'     => 'Many origins, one destination. One leg per origin.',
            'hub_and_spokes' => 'One origin, many destinations, with automatic return legs.',
            'mesh'           => 'Every origin to every destination, no returns.',
            'chain'          => 'Sequential A→B→C…; destinations are ignored.',
        ],

        'preview' => [
            'generate'      => 'Generate',
            'regenerate'    => 'Regenerate',
            'stale'         => 'Form has changed since last generation. Click Regenerate to apply.',
            'create_button' => 'Create :count flights',
            'working'       => 'Working…',
            'activate'      => 'Activate on save (visible to pilots immediately)',
            'row_singular'  => 'row',
            'row_plural'    => 'rows',
        ],

        'lint' => [
            'l1_capacity'           => 'Only :selected active aircraft selected for :count flights (threshold :threshold).',
            'l2_range_mismatch'     => 'Row distance :distance nm exceeds best subfleet range :range nm.',
            'l2b_type_mismatch'     => "Flight type :type not covered by any selected subfleet's route types.",
            'l3_empty_subfleets'    => 'No subfleets selected; flights will have no flyable aircraft.',
            'l4_duplicate_in_batch' => 'Flight number :flight_number is duplicated (rows :first and :second).',
            'l5_existing_duplicate' => 'Flight number :flight_number already exists (:ident).',
            'l6_origin_equals_dest' => 'Origin equals destination (:airport).',
            'l7_no_fares'           => 'Selected subfleets have no fares attached.',
            'l8_event_outside'      => 'Bundle window does not overlap event (event :start…:end).',
            'l9_batch_over_50'      => 'Batch size :count exceeds soft cap :threshold.',
            'l10_batch_over_100'    => 'Batch size :count exceeds hard cap :cap. Reduce row count to commit.',
            'l11_timezone_missing'  => 'Airport timezone missing (:airports); arrival time is a naïve fallback.',
        ],

        'dirty' => [
            'title'   => 'Regenerate will discard your edits',
            'body'    => 'The form has changed. Regenerating produces fresh rows from the new form values and will wipe :count edited row(s).',
            'cancel'  => 'Keep edits (cancel)',
            'confirm' => 'Confirm regenerate',
        ],

        'lint_dialog' => [
            'errors_title'   => 'Cannot commit',
            'warnings_title' => 'Lint warnings',
            'proceed'        => 'Proceed',
            'cancel'         => 'Cancel',
        ],

        'commit' => [
            'success' => ':count flight(s) created · batch :batch_id',
            'go_now'  => 'Go to bundle now',
            'error'   => 'Request failed (HTTP :status). Please try again.',
        ],

        'banner' => [
            'title'         => 'Draft available',
            'saved_at'      => 'You have a saved draft from :date.',
            'stale_warning' => 'This draft is over 30 days old. The airports and subfleets it references may have changed since.',
            'resume'        => 'Resume draft',
            'discard'       => 'Discard and start fresh',
        ],

        'bundle' => [
            'picker_label'       => 'Bundle',
            'picker_placeholder' => 'Search bundles or type a new name…',
            'picker_hint'        => 'Pick an existing bundle to append flights, or type a new name to create one.',
            'create_new_hint'    => 'Will create a new bundle: ":name"',
            'existing_label'     => 'Attaching to existing bundle',
            'change_selection'   => 'Change',
            'field_description'  => 'Description',
            'field_start_date'   => 'Start date',
            'field_end_date'     => 'End date',
            'field_enabled'      => 'Enabled',
            'value_yes'          => 'Yes',
            'value_no'           => 'No',
            'value_empty'        => '—',
            'no_matches'         => 'No matching bundles. Press Enter to use this as a new bundle name.',
        ],
    ],
];
