class ErrorResponse:
    """Class to handle error messages in the response."""

    PRINTER_DISCONNECTED = "La impresora se encuentra desconectada, ya se ha informado al personal."
    MISSING_FIELDS = "Los campos 'items' y 'table' son obligatorios."
    INVALID_TABLE_TYPE = "El campo 'table' debe ser un número entero."
    PRODUCT_ADD_ERROR = "Ha ocurrido un error al agregar los productos a la mesa."
    USER_CREATION_ERROR = "Hubo un error al crear el usuario."
    INVALID_CREDENTIALS = "Correo electrónico o PIN inválidos."
    TOO_MANY_ATTEMPTS = "Demasiados intentos de inicio de sesión. Por favor, inténtelo más tarde."
    SALE_NOT_FOUND = "No se encontraron ventas para este usuario."
    INVALID_PIN = "El PIN es inválido."
    INVALID_VERIFICATION_CODE = "El código de verificación es inválido."
    PRODDUCT_NOT_FOUND = "Producto con ID '{product_id}' no encontrado."
    INVALID_RUT = "El RUT proporcionado es inválido. Por favor, verifique el formato y los dígitos."

class SuccessResponse:
    """Class to handle success messages in the response."""

    ORDER_SUCCESS = "Orden enviada correctamente, se está procesando."
    PRODUCTS_FETCH_SUCCESS = "Productos obtenidos correctamente."
    CHAT_RESPONSE_SUCCESS = "Respuesta generada correctamente."
    USER_CREATED_SUCCESS = "Usuario creado exitosamente"
    LOGIN_SUCCESS = "Inicio de sesión exitoso."
    USER_DELETED_SUCCESS = "Usuario eliminado exitosamente."
    VERIFICATION_NEEDED = "Se enviará un correo electrónico para verificar su cuenta."
    PRODUCT_EDIT_SUCCESS = "Producto editado exitosamente."
    PRODUCT_CREATE_SUCCESS = "Producto creado exitosamente."
    PRODUCT_DELETE_SUCCESS = "Producto eliminado exitosamente."
    REWARD_SUCCESS = "Recompensa aplicada exitosamente."
    RECOVERY_EMAIL_SENT = "Se ha enviado un correo electrónico de recuperación."
class UserResponse:
    """Class to handle user-related messages in the response."""

    USER_NOT_FOUND = "Usuario con ID '{user_id}' no encontrado."
    USER_EXISTS = "El usuario existe."
    USER_DOES_NOT_EXIST = "El usuario no existe."
    USER_ALREADY_EXISTS = "El usuario ya está registrado."
    USER_FORMAT_BLOCKED = "Demasiados intentos de inicio de sesión. Usuario bloqueado por {time}."
    NOT_PERMITTED = "No tienes permisos para realizar esta acción."
    REWARD_INSUFFICIENT_PROGRESS = "Progreso insuficiente para reclamar la recompensa. Progreso actual: {progress}."
    USER_BLACKLISTED = "El usuario está en la lista negra y no puede acceder al sistema."
