package hu.alkfejl.bookshop.controller;

import hu.alkfejl.bookshop.model.BookShopDAO;
import hu.alkfejl.bookshop.model.bean.Book;
import hu.alkfejl.bookshop.model.bean.Customer;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;


/**
 * @author Fulop Lajos
 * @leiras Ez az osztály vezérli az egész programot, valamint a view és model csomagokat köti össze.
 *         Itt található az üzleti logika is. (business logic)
 */
public class BookShopController {
	
	private BookShopDAO dao; // Data Access Object - az adat elérését szolgáló objektum
	
	public BookShopController() throws ClassNotFoundException{
		dao = new BookShopDAO(); // Data Access Object - az adat elérését szolgáló objektum
	}
	
	//Controller, business logic (üzleti logika, szabályok)-ra példa
	//Valaki akkor hallgató ha 14nél fiatalabb, valaki akkor nyugdíjas ha 62-nel idősebb
	public boolean addCustomer(Customer c) throws SQLException{
		if(c.getAge() < 14)
			c.setStudent(true);
		else if(c.getAge() > 62)
			c.setRented(true);
		return dao.addCustomer(c);
	}
	
	//DAObol lekerjuk a Customereket
	public Map<Integer,Customer> getCustomers() throws SQLException{
		return dao.getCustomers();
	}
	
	public boolean buyBook(Book b) throws SQLException{
		if(b.getYear()<1900)
			b.setAncient(true);
		else
			b.setAncient(false);
		return dao.buyBook(b);
	}
	
	public Map<Integer,Book> getBooks() throws SQLException{
		return dao.getBooks();
	}
	
	public boolean addQualif(String qualif) throws SQLException {
		return dao.addQualif(qualif);
	}
	
	public List<String> getQualifs() throws SQLException {
		return dao.getQualifs();
	}

	public void removeQualif(String qualif) throws SQLException {
		dao.removeQualif(qualif);		
	}
}
