package com.mobilepioneers.androiddeveloperapplication;

import java.util.ArrayList;
import android.util.Log;


public class AndroidDeveloperApplication  {
	
	String TAG = "com.mobilepioneers.androiddeveloperapplication";
		
	ArrayList<String> skillsWeLike = new ArrayList<String>();
	ArrayList<String> interestWeLike = new ArrayList<String>();

	
	public enum ApplicantEducation {
	    NONE, HIGHSCHOOL, MBO, HBO,
	    UNIVERSITY, PHD, GENIUS 
	}

	
	public AndroidDeveloperApplication(Applicant applicant) {
		interestWeLike.add("We zijn op zoek naar een Android developer die het leuk en uitdagend vindt om mobiele apps te maken."); 
		interestWeLike.add("Je kunt creatieve ontwerpen vertalen naar technisch goede applicaties. ");
		interestWeLike.add("Je bent leergierig en niet bang om nieuwe uitdagende technologiëen en technieken toe te passen.");
		interestWeLike.add("Je wilt altijd op de hoogte zijn van de laatste trends en gadgets in zowel de Android- als de iOS-wereld.");
		
		if(!applicant.isIntern()){
			skillsWeLike.add("Je bent bekend met source control (git, svn, mecurical etc.).");
			skillsWeLike.add("Je kunt objectgeoriënteerd programmeren.");
			skillsWeLike.add("Je bent bekend met XML, json, webservices en apis.");
			skillsWeLike.add("Je bent bekend met Java en de Android SDK.");
			skillsWeLike.add("Je hebt minimaal èèn app in de Google Play gepubliceerd (technisch en UX friendly).");
			skillsWeLike.add("Kennis van andere programmeertalen is een prè.");
		}else{
			skillsWeLike.add("Je bent bekend met Java en de ontwikkelingomgeving van Eclipse.");
			skillsWeLike.add("Je kunt werken in teamverband, maar kunt ook zelfstandig werken.");
			skillsWeLike.add("Je weet stackoverflow.com te vinden.");
		}
		
		if(isApplicantMatch(applicant)){
			Log.i(TAG, "Beste "+ applicant.getName +", Je zou een match voor ons kunnen zijn. Stuur een mail naar vacatures@mobilepioneers.com t.a.v. Robin Heukels”);
		}else{
			Log.e(TAG, "Sorry "+ applicant.getName +" je bent niet de kandidaat die we zoeken...");
			
		}
	}
	
	
	public Boolean isApplicantMatch(Applicant potentialCollegae ){
		Boolean gotTheSkillsForMP = false;
		Boolean isMatchForMP = false;
		
		ArrayList<String> skillsYouGot = new ArrayList<String>();
		if(potentialCollegae.getYearsExperience > 1 && potentialCollegae.levelOfEducation >=ApplicantEducation.HBO || potentialCollegae.isIntern()){
			for (int i = 0; i < skillsWeLike.size(); i++) {
				if(potentialCollegae.getSkills().contains(skillsWeLike.get(i))){
					gotTheSkillsForMP = true;
				}else{
					gotTheSkillsForMP = false;
					break;
				}
			}
			
			if(gotTheSkillsForMP){
				for (int i = 0; i < interestWeLike.size(); i++) {
					if(potentialCollegae.hasInterestIn().contains(interestWeLike.get(i))){
						isMatchForMP = true;
					}else{
						isMatchForMP = false;
						break;
					}
				}
			}else{
				isMatchForMP = false;
			}
		}else{
			isMatchForMP = false;
		}
		
		return isMatchForMP;
	}

}