<?php

return [
    'auth' => [
        'unauthenticated' => 'Unauthenticated.',
        'invalid_credentials' => 'Email or password is incorrect.',
        'account_locked' => 'The account is temporarily locked. Please try again later.',
        'login_success' => 'Signed in successfully.',
        'logout_success' => 'Signed out successfully.',
        'register_success' => 'User registered successfully.',
        'password_reset_requested' => 'If the email is registered, you will receive a code to reset your password.',
        'password_reset_invalid' => 'The password recovery request is invalid or has already been used.',
        'password_updated' => 'Password updated successfully.',
        'reset_code_invalid' => 'The code you entered is invalid.',
        'reset_code_expired' => 'The password recovery code expired. Request a new one.',
        'reset_code_valid' => 'Code validated successfully.',
        'invalid_tenant_or_return_url' => 'The tenant or return URL is invalid.',
        'request_expired' => 'The authentication request expired. Please try again.',
        'invalid_return_url' => 'The return URL is invalid.',
        'oauth_code_expired' => 'The authentication code expired or has already been used.',
        'tenant_mismatch' => 'The tenant does not match the authentication request.',
        'google_email_required' => 'Google did not return an email for the account.',
        'google_email_unverified' => 'The Google account must have a verified email.',
    ],
    'cart' => [
        'editing_disabled' => 'Cart editing is disabled.',
        'variant_change_disabled' => 'Variant changes are disabled for this cart.',
        'item_added' => 'Product added to cart.',
        'quantity_updated' => 'Product quantity updated.',
        'item_updated' => 'Product updated.',
        'item_removed' => 'Product removed from cart.',
        'positive_quantity' => 'The quantity must be greater than zero.',
        'insufficient_stock' => 'There is not enough stock for the requested product. Maximum available: :max.',
        'max_quantity' => 'You can add a maximum of :max.',
        'bundle_variant_forbidden' => 'A bundle cannot have a variant.',
        'empty_bundle' => 'The bundle has no components.',
        'variant_required' => 'You must select a variant for this item.',
        'reservation_expired' => 'The stock reservation has expired. Use the active cart to continue.',
    ],
    'purchase' => [
        'expired' => 'The purchase has expired. Please start a new purchase.',
        'variant_change_disabled' => 'Variant changes are disabled for this purchase.',
        'source_required' => 'A cart or direct item is required.',
        'payment_method_required' => 'The purchase payment method must be selected before finalizing.',
        'not_editable' => 'The purchase is no longer editable.',
        'insufficient_stock' => 'There is not enough stock available.',
        'cannot_confirm' => 'A cancelled, rejected, expired, or superseded purchase cannot be confirmed.',
        'inconsistent_reservation' => 'The purchase has an inconsistent stock reservation.',
        'not_current' => 'The purchase is no longer the cart\'s current checkout.',
        'paid_cannot_cancel' => 'A paid purchase cannot be cancelled.',
        'stock' => [
            'seat_unavailable' => 'Seat :selection is no longer available.',
            'ticket_unavailable' => 'Ticket :selection is no longer available.',
            'product_unavailable' => 'There is not enough stock for :selection. Maximum available: :max.',
            'product_selection' => ':product (:selection)',
        ],
        'empty_cart' => 'The selected cart does not contain items.',
        'catalog_item_missing' => 'One or more catalog items could not be loaded.',
        'catalog_item_wrong_tenant' => 'One or more catalog items do not belong to the tenant.',
        'inactive_cart' => 'The selected cart is no longer active.',
        'checkout_in_progress' => 'The cart already has a purchase in progress.',
        'not_available_for_payment' => 'The purchase is no longer available for payment.',
        'not_available_for_review' => 'The purchase is no longer available for review.',
    ],
    'purchase_limit' => [
        'exceeded' => '{0} You cannot add more units of “:product”.|{1} You can add up to :max more unit of “:product”.|[2,*] You can add up to :max more units of “:product”.',
    ],
    'ticket' => [
        'not_available' => 'One or more tickets are not available.',
        'positive_quantity' => 'The number of tickets to generate must be greater than zero.',
        'empty_bundle' => 'Bundle :bundle has no components.',
        'disabled' => 'Product :product does not have tickets enabled.',
        'expired' => 'Product :product has reached its maximum usage date.',
        'invalid_variant' => 'Variant :variant does not belong to product :product.',
        'purchase_without_user' => 'Purchase :purchase does not have an associated user.',
        'product_not_found' => 'The product for purchase item :purchase_item was not found.',
        'already_scanned' => 'The ticket has already been scanned.',
        'expired_for_scan' => 'The ticket has expired.',
        'not_valid_for_scan' => 'The ticket is not currently valid.',
        'scanner_category_forbidden' => 'The scanner is not assigned to the ticket category.',
    ],
    'integration' => [
        'not_configured' => 'The integration is not configured for this client.',
        'configured' => 'Integration configured successfully.',
        'validation_failed' => 'Configuration validation failed: :error',
        'invalid_payment_method' => 'Invalid payment method.',
        'account_info_failed' => 'Could not retrieve account information.',
        'qr_generation_failed' => 'Could not generate the QR code.',
        'webhook_failed' => 'The webhook could not be processed.',
    ],
    'mail' => [
        'test_sent' => 'Test email sent successfully.',
    ],
    'catalog' => [
        'attribute_labels' => [
            'tipo' => 'Type',
            'sector' => 'Sector',
            'fila' => 'Row',
            'asiento' => 'Seat',
            'event_date' => 'Date',
        ],
        'standard_with_components' => 'A standard item cannot have components.',
        'duplicate_component' => 'The component is duplicated.',
        'component_wrong_tenant' => 'The item does not belong to the bundle tenant.',
        'invalid_component' => 'The component must be a standard item other than the bundle.',
        'component_variant_required' => 'You must select a variant for this component.',
        'component_variant_forbidden' => 'A component with direct inventory cannot have a variant.',
        'component_variant_invalid' => 'The variant does not belong to the selected component.',
        'bundle_component_required' => 'A bundle must have at least one component.',
        'bundle_field_forbidden' => ':field is not allowed for a bundle.',
        'attachment_not_found' => 'The specified attachment does not exist.',
        'attribute_not_found' => 'Attribute :attribute does not exist for the item tenant.',
        'managed_inventory_fields' => 'inventory_id, reserved_stock, and sold_units are managed internally.',
        'attribute_not_on_item' => 'The attribute does not belong to the catalog item.',
        'invalid_effective_date_range' => 'The effective maximum date must be after or equal to the effective minimum date.',
        'variants_required' => 'An item with attribute_codes must have variants.',
        'variants_forbidden' => 'An item without attribute_codes cannot have variants.',
        'direct_inventory_forbidden' => 'An item with variants cannot have direct inventory.',
        'event_date_attribute_required' => 'The event_date attribute is required for event date variants.',
        'multi_select_attribute_not_on_item' => 'Multi-select attributes must also be present in attribute_codes.',
        'hidden_attribute_not_on_item' => 'Hidden attributes must also be present in attribute_codes.',
        'ticket_label_attribute_not_on_item' => 'Ticket-label attributes must also be present in attribute_codes.',
        'event_date_selection_required' => 'At least one event date must be selected.',
        'single_event_date_required' => 'Exactly one event date must be selected.',
        'event_date_wrong_tenant' => 'Every event date must belong to the catalog item tenant.',
        'duplicate_variant_combination' => 'The variant combination must be unique.',
        'multi_value_required' => 'At least one value must be selected.',
        'single_value_required' => 'Exactly one value must be selected.',
        'selected_values_non_empty' => 'Every selected value must be a non-empty string.',
        'selected_values_distinct' => 'Selected values must be distinct.',
        'invalid_attribute_options' => 'One or more selected values are not valid attribute options.',
        'incompatible_validity_windows' => 'Selected values cannot have different validity windows.',
    ],
    'menu' => [
        'schema_required' => 'The schema is required for static menus.',
        'not_found' => 'The specified menu does not exist.',
    ],
    'tenant' => [
        'website_extra_toggled' => 'The section status was updated successfully.',
    ],
    'errors' => [
        'forbidden' => 'You do not have permission to perform this action.',
        'not_found' => 'The requested resource was not found.',
        'method_not_allowed' => 'The HTTP method is not allowed for this route.',
        'request_failed' => 'The request could not be processed.',
    ],
];
