package com.rjconsultores.ventaboletos.utilerias;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import com.rjconsultores.ventaboletos.entidad.OCD;

public class OcdUtil {
	
	private static final String REGEX = "([0-9]+)([A-Za-z]{3})([0-9]+)";
	
	public static String generaLocalizadorOCD(OCD ocd) {
		return generaLocalizadorOCD(ocd.getNumoperacion(), ocd.getOcdId());
	}
	
	public static String generaLocalizadorOCD(String numoperacion, Long ocdId) {
		char letraPosicao1 = (char) (numoperacion.charAt(numoperacion.length() - 1) + 25);
		char letraPosicao2 = (char) (numoperacion.charAt(numoperacion.length() - 2) + 25);
		char letraPosicao3 = (char) (numoperacion.charAt(numoperacion.length() - 3) + 25);
		String localizador = String.format("%s%s%s%s%d", numoperacion, letraPosicao1, letraPosicao2, letraPosicao3, ocdId).toLowerCase();
		return localizador;
	}
	
	public static boolean validarLocalizadorOcd(String localizador) {
		Pattern localizadorPattern = Pattern.compile(REGEX);
		Matcher localizadorMatcher = localizadorPattern.matcher(localizador);
		return localizadorMatcher.matches();
	}
	
	public static Long getOcdIdByLocalizadorOcd(String localizador) {
		Pattern localizadorPattern = Pattern.compile(REGEX);
		Matcher localizadorMatcher = localizadorPattern.matcher(localizador);
		localizadorMatcher.matches();
		return Long.valueOf(localizadorMatcher.group(3));
	}
	
	public static String getNumOcdByLocalizadorOcd(String localizador) {
		Pattern localizadorPattern = Pattern.compile(REGEX);
		Matcher localizadorMatcher = localizadorPattern.matcher(localizador);
		localizadorMatcher.matches();
		return localizadorMatcher.group(1);
	}

}
