package com.social.media.application.exception;

/**
 * Exception thrown when user registration fails
 */
public class RegistrationException extends RuntimeException {
    
    public RegistrationException(String message) {
        super(message);
    }
    
    public RegistrationException(String message, Throwable cause) {
        super(message, cause);
    }
    
    public static RegistrationException emailAlreadyExists() {
        return new RegistrationException("E-mail já está em uso. Tente outro e-mail ou faça login.");
    }
    
    public static RegistrationException usernameAlreadyExists() {
        return new RegistrationException("Nome de usuário já está em uso. Escolha outro nome.");
    }
    
    public static RegistrationException weakPassword() {
        return new RegistrationException("Senha muito fraca. Use pelo menos 8 caracteres com letras e números.");
    }
    
    public static RegistrationException invalidEmail() {
        return new RegistrationException("Formato de e-mail inválido.");
    }
    
    public static RegistrationException companyNotFound() {
        return new RegistrationException("Empresa não encontrada.");
    }
    
    public static RegistrationException companyFull() {
        return new RegistrationException("Empresa atingiu o limite máximo de usuários.");
    }
}
