class Message:
    """This class contains all types of message responses."""

    class Success:
        """Success response messages."""

        OBJECT_SAVED = "%s has been saved successfully."
        OBJECT_UPDATED = "%s has been updated successfully."
        OBJECT_DELETED = "%s has been deleted successfully."
        OBJECT_CANCELLED = "%s has been cancelled successfully."
        OBJECT_GET = "%s retrieved successfully."
        OTP_IS_VERIFIED = "OTP has been verified successfully."
        OBJECT_SOFT_DELETED = "%s has been softly deleted successfully."
        OBJECT_CREATED = "%s has been created successfully."
        OBJECTS_IMPORTED = "%s have been imported successfully."
        LOGIN_SUCCESS = "%s have been logged in successfully."
        REQUEST_SUCCESS = "Your request have been processed successfully."
        FORGOT_PASSWORD = "If your account exist on phone mate, you will receive an email with instructions to reset your password."

    class Error:
        """Error response messages."""

        ERROR_MSG = "An error occurred!"
        METHOD_NOT_ALLOWED = "The method is not allowed for the requested URL."
        NOT_FOUND = "No %s found."
        BAD_REQUEST = "Bad Request."
        NOT_FOUND_WITH_ID = "No such %s found with id %s."
        NOT_FOUND_WITH_CRITERIA = "with %s."
        TYPE_ERROR = "Please change the type."
        INTERNAL_SERVER_ERROR = (
            "The system encountered something unexpected. We apologize for the inconvenience. Please try again later."
        )
        EMAIL_NOT_CORRECT = "Email is not correct."
        ALREADY_EXIST = "%s already exists."
        INVALID = "%s is invalid."
        UNAUTHORIZED = "Unauthorized access."
        ACCOUNT_LOCKED = "Account is locked."
        DB_OPERATION_FAILED = "Database operation failed."
        AUTHORIZATION_FAIL = "Username or password is incorrect."
        INVALID_STATUS_CHANGE = "Invalid status change."
        VALIDATION_ERROR = "Validation error."
        JWT_TOKEN_EXPIRE = "JWT token expired."
        JWT_WRONG_TOKEN_ERROR = "Invalid JWT token."
        INSUFFICIENT_REMAINING_TARGET = (
            "Selected %s can't distribute more than the assigned target."
        )
