{
  "errors": {
    "INTERNAL_ERROR": "An internal error occurred. Please try again.",
    "VALIDATION_FAILED": "The submitted data is not valid.",
    "NOT_FOUND": "The requested item was not found.",
    "CONFLICT": "This operation conflicts with the current state.",
    "RATE_LIMITED": "Too many requests. Please try again shortly.",
    "FEATURE_DISABLED": "This feature is not currently enabled.",
    "IDEMPOTENCY_KEY_REQUIRED": "An Idempotency-Key header is required for this operation.",
    "IDEMPOTENCY_KEY_REUSED": "This idempotency key was already used with a different request.",
    "IDEMPOTENCY_IN_PROGRESS": "An identical request is currently being processed.",

    "UNAUTHENTICATED": "You must sign in to perform this action.",
    "INVALID_CREDENTIALS": "Invalid credentials.",
    "TOKEN_EXPIRED": "Your session has expired. Please sign in again.",
    "TOKEN_REVOKED": "This session has been revoked.",
    "DEVICE_NOT_RECOGNIZED": "Signing in from a new device requires SMS verification.",
    "FORBIDDEN": "You do not have access to this resource.",
    "ROLE_NOT_ASSIGNED": "This role is not active on your account.",
    "ACCOUNT_SUSPENDED": "Your account has been suspended.",

    "OTP_INVALID": "The code you entered is incorrect.",
    "OTP_EXPIRED": "The code has expired. Please request a new one.",
    "OTP_TOO_MANY_ATTEMPTS": "Too many failed attempts. Please request a new code.",
    "OTP_COOLDOWN": "Please wait {seconds} seconds before requesting a new code.",
    "OTP_DAILY_LIMIT": "The daily code limit for this number has been reached.",

    "SERVICE_TYPE_INACTIVE": "This service is not available in your country.",
    "SLOT_UNAVAILABLE": "This time slot is not available.",
    "SLOT_ALREADY_BOOKED": "This time slot has already been booked.",
    "INVALID_BOOKING_TRANSITION": "Booking status cannot change from \"{from}\" to \"{to}\".",
    "BOOKING_CANCELLATION_WINDOW_PASSED": "The free cancellation window for this booking has passed.",
    "PROVIDER_NOT_VERIFIED": "This provider has not been verified yet.",

    "INSUFFICIENT_FUNDS": "Insufficient wallet balance.",
    "WALLET_NOT_FOUND": "Wallet not found.",
    "CURRENCY_MISMATCH": "The operation currency does not match the wallet currency.",
    "IMPLICIT_CONVERSION_FORBIDDEN": "Currency conversion must be performed explicitly.",
    "LEDGER_IMMUTABLE": "The ledger is append-only; existing records cannot be modified.",
    "ESCROW_INVALID_STATE": "The current escrow state does not permit this operation.",
    "EXCHANGE_RATE_UNAVAILABLE": "Exchange rate is unavailable.",
    "PAYMENT_GATEWAY_ERROR": "Could not reach the payment gateway.",
    "PAYMENT_VERIFICATION_FAILED": "Payment verification failed.",
    "AMOUNT_MUST_BE_POSITIVE": "Amount must be greater than zero.",

    "CONSENT_REQUIRED": "Access to this record requires the patient's explicit consent.",
    "CONSENT_EXPIRED": "Your access to this record has expired.",
    "CONSENT_REVOKED": "The patient has revoked your access to this record.",
    "CONSENT_SCOPE_INSUFFICIENT": "The patient's consent does not cover this part of the record.",
    "MEDICAL_RECORD_NOT_FOUND": "Medical record not found.",

    "NO_PROVIDER_AVAILABLE": "No provider is currently available.",
    "DISPATCH_OFFER_EXPIRED": "The acceptance window for this request has expired.",

    "STORE_UNAVAILABLE": "The store is currently unavailable.",
    "STORE_WEBHOOK_SIGNATURE_INVALID": "The store message signature is invalid.",

    "LAST_ADMIN_PROTECTED": "This is the last user with role/permission management access; it cannot be removed or deactivated.",
    "SYSTEM_ROLE_IMMUTABLE": "This is a system role and cannot be deactivated or have its permissions changed from the panel.",
    "SCOPE_NOT_ALLOWED": "You have the required permission, but your access scope does not cover this country.",
    "PROVIDER_ALREADY_VERIFIED": "This provider is already verified."
  },
  "booking": {
    "status": {
      "pending": "Pending",
      "confirmed": "Confirmed",
      "in_progress": "In progress",
      "completed": "Completed",
      "cancelled": "Cancelled",
      "disputed": "Disputed"
    }
  },
  "wallet": {
    "transaction_type": {
      "DEPOSIT": "Deposit",
      "WITHDRAWAL": "Withdrawal",
      "ESCROW_HOLD": "Held in escrow",
      "ESCROW_RELEASE": "Released from escrow",
      "REFUND": "Refund",
      "COMMISSION": "Platform commission",
      "EXCHANGE_OUT": "Currency exchange — out",
      "EXCHANGE_IN": "Currency exchange — in",
      "PAYOUT": "Provider payout",
      "ADJUSTMENT_REVERSAL": "Corrective reversal"
    }
  },
  "notification": {
    "booking_created_provider": "A new booking was created for you: {service} on {date}",
    "booking_created_patient": "Your booking was created and the amount is held in escrow.",
    "booking_confirmed": "Your booking has been confirmed.",
    "booking_cancelled": "Your booking has been cancelled.",
    "escrow_released": "{amount} {currency} has been credited to your wallet.",
    "consent_requested": "Dr. {doctor} is requesting access to your health record.",
    "consent_granted": "Your access to the patient record is now active.",
    "otp_code": "Your sign-in code: {code}"
  }
}
