{
  "common": {
    "success": "Success",
    "error": "Error",
    "notFound": "Not Found",
    "unauthorized": "Unauthorized",
    "forbidden": "Forbidden",
    "validationError": "Validation Error",
    "serverError": "Server Error",
    "badRequest": "Bad Request"
  },
  "auth": {
    "login": "Login successful",
    "loginSuccess": "Login successful",
    "loginFailed": "Invalid credentials",
    "userRegistered": "User registered successfully",
    "registerSuccess": "Registration successful",
    "emailRegistered": "Email already registered",
    "otpSent": "OTP sent successfully",
    "otpVerified": "OTP verified successfully",
    "invalidOtp": "Invalid OTP",
    "otpExpired": "OTP has expired",
    "passwordResetSent": "Password reset instructions sent",
    "passwordResetSuccess": "Password reset successful",
    "profileUpdated": "Profile updated successfully",
    "profileRetrieved": "Profile retrieved successfully",
    "tokenRefreshed": "Token refreshed successfully",
    "tokenExpired": "Token has expired",
    "tokenInvalid": "Invalid token",
    "logout": "Logout successful",
    "userNotAbleToLogin": "User not able to login",
    "passwordChanged": "Password changed successfully",
    "usernameSent": "If an account matches the details provided, the username has been sent to the registered email"
  },
  "user": {
    "profileRetrieved": "Profile retrieved successfully",
    "profileUpdated": "Profile updated successfully",
    "userNotFound": "User not found",
    "userDeleted": "User deleted successfully",
    "userActivated": "User activated successfully",
    "userDeactivated": "User deactivated successfully",
    "userFetched": "User fetched successfully",
    "userCreated": "User created successfully",
    "statusUpdated": "Status updated successfully",
    "searchCompleted": "Search completed successfully",
    "globalSearchCompleted": "Global search completed successfully"
  },
  "admin": {
    "adminCreated": "Admin created successfully",
    "adminUpdated": "Admin updated successfully",
    "adminDeleted": "Admin deleted successfully",
    "adminNotFound": "Admin not found",
    "statsRetrieved": "Statistics retrieved successfully",
    "statusUpdated": "Status updated successfully",
    "roleUpdated": "Role updated successfully",
    "loginSuccess": "Login successful",
    "logoutSuccess": "Logout successful",
    "profileRetrieved": "Profile retrieved successfully",
    "profileUpdated": "Profile updated successfully",
    "passwordChanged": "Password changed successfully"
  },
  "cms": {
    "listSuccess": "CMS pages retrieved successfully",
    "getSuccess": "CMS page retrieved successfully",
    "updateSuccess": "CMS page updated successfully",
    "deleteSuccess": "CMS page deactivated successfully"
  },
  "faq": {
    "faqCreated": "FAQ created successfully",
    "faqUpdated": "FAQ updated successfully",
    "faqDeleted": "FAQ deleted successfully",
    "faqActivated": "FAQ activated successfully",
    "faqDeactivated": "FAQ deactivated successfully",
    "faqListSuccess": "FAQs retrieved successfully",
    "faqGetSuccess": "FAQ retrieved successfully"
  },
  "validation": {
    "required": "This field is required",
    "email": "Please enter a valid email address",
    "password": "Password must be at least 6 characters",
    "minLength": "Must be at least {{min}} characters",
    "maxLength": "Must be at most {{max}} characters",
    "pattern": "Invalid format",
    "numeric": "Must be a number",
    "integer": "Must be an integer",
    "boolean": "Must be a boolean",
    "array": "Must be an array",
    "object": "Must be an object"
  },
  "email": {
    "common": {
      "greeting": "Hello",
      "regards": "Best regards",
      "teamSignature": "Team",
      "importantLabel": "Important"
    },
    "welcome": {
      "title": "Welcome to Our Platform!",
      "greeting": "Hello",
      "message": "Welcome to our platform! We're excited to have you on board.",
      "accountCreated": "Your account has been successfully created with the email:",
      "exploreFeatures": "You can now log in and start exploring all the features we have to offer.",
      "loginButton": "Login to Your Account",
      "supportMessage": "If you have any questions, feel free to contact our support team.",
      "regards": "Best regards",
      "teamSignature": "Team"
    },
    "passwordReset": {
      "title": "Password Reset Request",
      "greeting": "Hello",
      "message": "We received a request to reset your password for your account.",
      "important": "This password reset link will expire in",
      "hoursText": "hour(s)",
      "instructions": "Click the button below to reset your password:",
      "button": "Reset Password",
      "ignore": "If you didn't request this password reset, please ignore this email."
    },
    "otp": {
      "title": "Your One-Time Password (OTP)",
      "greeting": "Hello",
      "message": "Your One-Time Password (OTP) is:",
      "important": "This OTP will expire in",
      "minutesText": "minute(s)",
      "instructions": "Please enter this OTP to complete your verification process.",
      "ignore": "If you didn't request this OTP, please ignore this email.",
      "campsiteDetailsLabel": "Campsite Details",
      "ownerNameLabel": "Owner Name",
      "ownerEmailLabel": "Owner Email",
      "campsiteNameLabel": "Campsite Name",
      "usernameLabel": "Username"
    },
    "passwordChanged": {
      "title": "Your Password Has Been Changed",
      "greeting": "Hello",
      "message": "Your password has been successfully changed.",
      "changeTimeLabel": "Change Time:",
      "loginButton": "Login to Your Account",
      "securityNote": "For security reasons, make sure to use a strong and unique password.",
      "regards": "Best regards",
      "teamSignature": "Team"
    },
    "campsiteOwnerWelcome": {
      "title":          "Welcome to CampNow – Campsite Owner Portal",
      "greeting":       "Hello",
      "message":        "Your campsite owner account has been created by our admin team. Once your first campsite is set up, you will receive login credentials by email.",
      "pendingNoteLabel": "Account Status:",
      "pendingNote":    "Your campsite login credentials will be sent to this email as soon as the admin creates your first campsite."
    },
    "campsiteCredentials": {
      "title":                  "Your Campsite Login Credentials",
      "greeting":               "Hello",
      "message":                "A new campsite has been created for you. Below are your login credentials for this campsite.",
      "campsiteLabel":          "Campsite:",
      "usernameLabel":          "Username:",
      "temporaryPasswordLabel": "Temporary Password:",
      "securityNote":           "Please log in and change your password as soon as possible.",
      "loginButton":            "Login to Campsite Portal"
    },
    "campsiteForgotPassword": {
      "title":        "Campsite Password Reset Request",
      "greeting":     "Hello",
      "message":      "We received a request to reset the password for your campsite.",
      "campsiteLabel": "Campsite:",
      "instructions": "Click the button below to reset your password:",
      "button":       "Reset Password",
      "important":    "This link will expire in",
      "hoursText":    "hour(s)",
      "ignore":       "If you did not request this, please ignore this email."
    },
    "campsiteUsernameChanged": {
      "title":           "Your Campsite Username Has Been Updated",
      "greeting":        "Hello",
      "message":         "The username for your campsite has been updated by the administrator.",
      "campsiteLabel":   "Campsite:",
      "newUsernameLabel": "New Username:",
      "note":            "Please use this new username the next time you log in.",
      "loginButton":     "Login to Campsite Portal"
    },
    "campsiteForgotUsername": {
      "title":         "Your Campsite Username",
      "greeting":      "Hello",
      "message":       "Here is the username for your requested campsite.",
      "campsiteLabel": "Campsite:",
      "usernameLabel": "Username:",
      "loginButton":   "Login to Campsite Portal"
    },
    "listingApplicationAdmin": {
      "title": "New Listing Application",
      "subjectPrefix": "New Listing Application",
      "intro": "A new campsite listing application has been submitted. Details are below:",
      "campsiteNameLabel": "Campsite Name",
      "contactNameLabel": "Contact Name",
      "emailLabel": "Email",
      "locationLabel": "Location",
      "websiteLabel": "Website",
      "messageLabel": "Message",
      "submittedAtLabel": "Submitted At"
    },
    "listingApplicationApplicant": {
      "title": "Thank you for your application!",
      "subject": "We received your listing application",
      "receivedText": "We have received your listing application for",
      "atText": "at",
      "reviewText": "Our team will review your request and get back to you shortly.",
      "whatNextLabel": "What happens next?",
      "whatNextText": "Our team typically reviews applications within 2-3 business days. We will reach out to you at this email address once a decision has been made.",
      "questionsText": "If you have any questions in the meantime, feel free to reply to this email."
    },
    "contactUsAdmin": {
      "title": "New Contact Us Submission",
      "subjectPrefix": "New Contact Us Submission",
      "intro": "A new message has been submitted via the contact form. Details are below:",
      "nameLabel": "Name",
      "emailLabel": "Email",
      "subjectLabel": "Subject",
      "messageLabel": "Message",
      "submittedAtLabel": "Submitted At"
    },
    "contactUsApplicant": {
      "title": "Thank you for reaching out!",
      "subjectPrefix": "We received your message",
      "receivedText": "We have received your message regarding",
      "reviewText": "Our team will review it and get back to you as soon as possible.",
      "yourMessageLabel": "Your message",
      "whatNextLabel": "What happens next?",
      "whatNextText": "We typically respond within 1-2 business days. Please check your inbox for a reply from our team.",
      "urgentText": "If your matter is urgent, feel free to reply directly to this email."
    },
    "contactUsSubjects": {
      "GENERAL":     "General Inquiry",
      "LISTING":     "List My Campsite",
      "SUPPORT":     "Technical Support",
      "BILLING":     "Billing",
      "PARTNERSHIP": "Partnership"
    },
    "accountDeletion": {
      "title": "Account Deletion Confirmation",
      "greeting": "Hello",
      "message": "Your account has been successfully deleted.",
      "deletionDateLabel": "Deletion Date:",
      "regards": "Best regards",
      "teamSignature": "Team"
    },
    "emailVerification": {
      "title": "Email Verification",
      "greeting": "Hello",
      "message": "Please verify your email address to activate your account.",
      "instructions": "Click the button below to verify your email:",
      "button": "Verify Email",
      "important": "This verification link will expire in",
      "hoursText": "hour(s)",
      "ignore": "If you didn't create an account, please ignore this email.",
      "regards": "Best regards",
      "teamSignature": "Team"
    },
    "test": {
      "title": "Test Email",
      "greeting": "Hello",
      "message": "This is a test email to verify that the email service is working correctly.",
      "testTimeLabel": "Test Time:",
      "serverLabel": "Server:",
      "button": "Test Passed",
      "success": "If you received this email, the email service is working properly.",
      "signature": "Email Service Test"
    }
  },
  "notification": {
    "testTitle": "Test notification",
    "testDescription": "This is a test notification",
    "testType": "test",
    "retrieved": "Notification retrieved successfully",
    "updated": "Notification updated successfully",
    "sent": "Notification sent successfully",
    "created": "Notification created successfully",
    "markedAsRead": "Notification marked as read",
    "allMarkedAsRead": "All notifications marked as read",
    "processed": "Notification processed successfully",
    "deleted": "Notification deleted successfully",
    "unreadCountRetrieved": "Unread count retrieved successfully",
    "statsRetrieved": "Notification statistics retrieved successfully",
    "bulkCreated": "Bulk notifications created successfully"
  },
  "media": {
    "exampleFilename": "example.jpg",
    "exampleAltText": "Example image",
    "exampleDescription": "Example description",
    "exampleTag": "example",
    "testTag": "test"
  },
  "stripe": {
    "configured": "configured",
    "test": "test",
    "paymentIntentCreated": "Payment intent created successfully",
    "paymentConfirmed": "Payment confirmed successfully",
    "subscriptionCreated": "Subscription created successfully",
    "subscriptionCancelled": "Subscription cancelled successfully",
    "paymentDetailsRetrieved": "Payment details retrieved successfully",
    "customerCreated": "Customer created successfully",
    "paymentMethodsRetrieved": "Payment methods retrieved successfully",
    "paymentMethodAdded": "Payment method added successfully",
    "paymentMethodDeleted": "Payment method deleted successfully",
    "refundProcessed": "Refund processed successfully",
    "transactionsRetrieved": "Transactions retrieved successfully",
    "webhookProcessed": "Webhook processed successfully"
  },
  "notificationMessage": {
    "subscriptionDidRenewTitle": "Subscription Renewed",
    "subscriptionDidRenewDescription": "Your subscription has been successfully renewed",
    "subscriptionBillingRecoveryTitle": "Billing Recovery",
    "subscriptionBillingRecoveryDescription": "Your subscription billing has been recovered",
    "subscriptionDidChangeRenewalStatusEnabledTitle": "Auto-Renewal Enabled",
    "subscriptionDidChangeRenewalStatusEnabledDescription": "Your subscription auto-renewal has been enabled",
    "subscriptionDidChangeRenewalStatusDisabledTitle": "Auto-Renewal Disabled",
    "subscriptionDidChangeRenewalStatusDisabledDescription": "Your subscription auto-renewal has been disabled"
  },
  "dashboard": {
    "statsRetrieved": "Dashboard statistics retrieved successfully",
    "quickStatsRetrieved": "Quick stats retrieved successfully",
    "activitiesRetrieved": "Recent activities retrieved successfully",
    "analyticsRetrieved": "Analytics retrieved successfully",
    "systemHealthRetrieved": "System health retrieved successfully",
    "analyticsOverviewRetrieved": "Analytics overview retrieved successfully"
  },
  "campground": {
    "basicInfoRetrieved":         "Campground basic info retrieved successfully",
    "basicInfoUpdated":           "Campground basic info updated successfully",
    "mediaRetrieved":             "Campground media retrieved successfully",
    "mediaUploaded":              "Media uploaded successfully",
    "mediaDeleted":               "Media deleted successfully",
    "linksRetrieved":             "Campground links retrieved successfully",
    "linksUpdated":               "Campground links updated successfully",
    "faqsRetrieved":              "FAQs retrieved successfully",
    "contactUpdated":             "Contact URL updated successfully",
    "faqCreated":                 "FAQ created successfully",
    "faqUpdated":                 "FAQ updated successfully",
    "faqDeleted":                 "FAQ deleted successfully",
    "setupCompleted":             "Campground setup completed successfully",
    "availabilityRulesRetrieved": "Availability rules retrieved successfully",
    "availabilityRulesSaved":     "Availability rules saved successfully",
    "modeSwitched":               "Mode switched successfully. All previous data has been cleared.",
    "publicProfileRetrieved":     "Campground public profile retrieved successfully",
    "similarRetrieved":           "Similar campgrounds retrieved successfully"
  },
  "availability": {
    "grid": "Availability retrieved successfully"
  },
  "campsite": {
    "listSuccess":   "Campsites retrieved successfully",
    "getSuccess":    "Campsite retrieved successfully",
    "createSuccess": "Campsite created successfully",
    "updateSuccess": "Campsite updated successfully",
    "deleteSuccess": "Campsite deleted successfully",
    "statusUpdated": "Campsite status updated successfully"
  },
  "campsiteOwner": {
    "listSuccess":   "Campsite owners retrieved successfully",
    "getSuccess":    "Campsite owner retrieved successfully",
    "createSuccess": "Campsite owner created successfully. A welcome email has been sent.",
    "updateSuccess": "Campsite owner updated successfully",
    "deleteSuccess": "Campsite owner deleted successfully",
    "statusUpdated": "Campsite owner status updated successfully"
  },
  "subCategory": {
    "list":           "Sub-categories retrieved successfully",
    "mappingUpdated": "Category mapping updated successfully",
    "created":        "Sub-category created successfully",
    "updated":        "Sub-category updated successfully",
    "deleted":        "Sub-category deleted successfully",
    "synced":         "Camping categories saved successfully"
  },
  "superCategory": {
    "listSuccess": "Super categories retrieved successfully",
    "getSuccess": "Super category retrieved successfully",
    "createSuccess": "Super category created successfully",
    "updateSuccess": "Super category updated successfully",
    "reorderSuccess": "Super categories reordered successfully",
    "affectedCategoriesSuccess": "Affected categories retrieved successfully",
    "deleteSuccess": "Super category deleted successfully"
  },
  "errors": {
    "emailAlreadyRegistered": "Email is already registered",
    "invalidCredentials": "Invalid credentials",
    "invalidOtp": "Invalid OTP",
    "userNotFound": "User not found",
    "invalidToken": "Invalid token",
    "invalidRefreshToken": "Invalid refresh token",
    "invalidSocialType": "Invalid social type",
    "userDisabled": "User account is disabled",
    "emailRequired": "Email is required",
    "emailAlreadyExists": "Email already exists",
    "cmsNotFound": "CMS page not found",
    "titleContentRequired": "Title and content are required",
    "slugExists": "Slug already exists",
    "faqNotFound": "FAQ not found",
    "faqDetailsRequired": "Question, answer, and category are required",
    "categoryNotFound": "Category not found",
    "categoryNameRequired": "Category name is required",
    "categoryHasFaqs": "Cannot delete category with existing FAQs",
    "notificationDetailsRequired": "Title, message, and receiver ID are required",
    "notificationNotFound": "Notification not found",
    "accessDenied": "Access denied",
    "invalidAmount": "Amount must be greater than 0",
    "paymentIntentFailed": "Failed to create payment intent",
    "paymentDetailsRequired": "Payment intent ID and payment method ID are required",
    "paymentConfirmFailed": "Failed to confirm payment",
    "subscriptionDetailsRequired": "Customer ID and price ID are required",
    "subscriptionCreateFailed": "Failed to create subscription",
    "subscriptionIdRequired": "Subscription ID is required",
    "subscriptionCancelFailed": "Failed to cancel subscription",
    "paymentNotFound": "Payment not found",
    "customerCreateFailed": "Failed to create customer",
    "paymentMethodsRetrieveFailed": "Failed to retrieve payment methods",
    "paymentIntentIdRequired": "Payment intent ID is required",
    "refundProcessFailed": "Failed to process refund",
    "adminNotFound": "Admin not found",
    "currentPasswordIncorrect":  "Current password is incorrect",
    "invalidCurrentPassword":    "Invalid current password",
    "onlyImageFilesAllowed": "Only image files are allowed",
    "cmsSlugRequired": "CMS page slug is required",
    "cmsSlugInvalid": "Slug must be one of: imprint, privacy-policy, terms-and-conditions",
    "cmsTitleEnRequired": "English title (title_en) is required",
    "cmsTitleDeRequired": "German title (title_de) is required",
    "cmsTitleTooLong": "Title must be at most 200 characters",
    "cmsContentEnRequired": "English content (content_en) is required",
    "cmsContentDeRequired": "German content (content_de) is required",
    "faqAudienceRequired": "audience is required",
    "faqAudienceInvalid": "audience must be one of: general, generalAudience, campsiteOwner, campsite",
    "faqQuestionEnRequired": "English question (question_en) is required",
    "faqQuestionDeRequired": "German question (question_de) is required",
    "faqQuestionTooLong": "Question must be at most 500 characters",
    "faqAnswerEnRequired": "English answer (answer_en) is required",
    "faqAnswerDeRequired": "German answer (answer_de) is required",
    "faqCampsiteIdRequired": "campsiteId is required when audience is 'campsite'",
    "faqCampsiteIdNotAllowed": "campsiteId must not be provided for this audience type",
    "superCategoryNotFound": "Super category not found",
    "superCategoryDuplicateNameEn": "A super category with this English name already exists",
    "superCategoryDuplicateNameDe": "A super category with this German name already exists",
    "superCategoryLinkedConflict": "This super category is assigned to one or more campsite categories and cannot be deleted",
    "superCategoryDeleteConfirmRequired": "Deletion requires explicit confirmation. Call this endpoint with ?confirm=true",
    "superCategoryReorderIdNotFound": "One or more super category IDs were not found",
    "superCategoryAtLeastOneField": "At least one field (name_en, name_de, order, or icon) must be provided",
    "superCategoryNameEnRequired": "English name (name_en) is required",
    "superCategoryNameDeRequired": "German name (name_de) is required",
    "superCategoryNameEnTooLong": "name_en must be at most 100 characters",
    "superCategoryNameDeTooLong": "name_de must be at most 100 characters",
    "campsiteNotFound":                  "Campsite not found",
    "campsiteDeleteConfirmRequired":     "Please set confirmed: true to delete this campsite",
    "campsiteOwnerFirstNameRequired":    "Owner first name is required",
    "campsiteOwnerFirstNameTooLong":     "Owner first name must be at most 100 characters",
    "campsiteOwnerLastNameRequired":     "Owner last name is required",
    "campsiteOwnerLastNameTooLong":      "Owner last name must be at most 100 characters",
    "campsiteOwnerEmailRequired":        "Owner email is required",
    "onlyPdfFilesAllowed":               "Only PDF files are allowed",
    "campsiteOwnerNotFound":             "Campsite owner not found",
    "campsiteOwnerEmailExists":          "An account with this email already exists",
    "campsiteOwnerDeleteConfirmRequired":"Please set confirmed: true to delete this campsite owner",
    "campsiteOwnerHasCampsites":         "This campsite owner has one or more campsites and cannot be deleted",
    "campsiteOwnerPendingSetup":         "Your account is not yet active. Please wait for the admin to configure your first campsite.",
    "campsiteOwnerInvalidType":          "The selected user is not a campsite owner",
    "campsiteInvalidOwner":              "Invalid campsite owner",
    "campsiteUserRequired":              "A campsite owner (userId) is required",
    "campsiteInactive":                  "This campsite is not active. Please contact the administrator.",
    "campsiteUsernameExists":            "This username is already taken. Please choose a different one.",
    "mediaFileRequired":                 "A file is required.",
    "mediaInvalidType":                  "Only JPG and PNG files are allowed.",
    "mediaInvalidMediaType":             "Invalid media type. Must be cover or gallery.",
    "mediaUploadFailed":                 "File upload failed. Please try again.",
    "mediaNotFound":                     "Media not found.",
    "coverMustBeImage":                  "Cover media must be an image.",
    "slugGenerationFailed":              "Failed to generate a unique slug. Please try again.",
    "setupNotCompleted":                 "Setup is not completed. Please finish all steps before activating.",
    "setupAlreadyActive":                "This campground profile is already active.",
    "cannotShowInactiveProfile":         "Cannot update visibility for an inactive profile.",
    "sourceFaqNotFound":                 "The referenced admin FAQ does not exist or is no longer active.",
    "campalotApiUnreachable":            "Could not reach the Campalot API. Please check your base URL.",
    "erpNotConfigured":                  "No ERP integration configured for this campsite.",
    "erpManualSyncNotSupported":         "Manual sync is not supported for the current integration type.",
    "subCategoryNotFound":               "Sub-category not found.",
    "subCategoryNotManual":              "Only manually created categories can be edited or deleted.",
    "subCategoryDuplicateName":          "A sub-category with this name already exists."
  },
  "listingApplication": {
    "submitted": "Your listing application has been submitted successfully. We will be in touch soon."
  },
  "contactUs": {
    "submitted": "Your message has been sent successfully. We will get back to you within 1-2 business days.",
    "subscribed": "You have been successfully subscribed to our newsletter."
  },
  "search": {
    "searchSuccess": "Campsites retrieved successfully"
  },
  "campalot": {
    "initiated": "Campalot integration set up successfully",
    "synced":    "Campalot sync completed successfully"
  },
  "erp": {
    "synced":                "ERP sync completed successfully",
    "notConfigured":         "No ERP integration configured for this campsite",
    "manualSyncNotSupported":"Manual sync is not supported for the current integration type"
  }
}
