/*
 * Arrebol Consultancy copyright.
 * 
 * This code belongs to Arrebol Consultancy
 * its use, redistribution or modification are prohibited 
 * without written authorization from Arrebol Consultancy.
 */
package com.arrebol.taxiservicios.controller.top;

import com.arrebol.taxiservicios.model.core.Address;
import com.arrebol.taxiservicios.model.core.ContactNumber;
import com.arrebol.taxiservicios.model.core.Person;
import java.util.List;

/**
 *
 * @author Carlos Janitzio Zavala Lopez <janitzio.zavala@arrebol.com.mx>
 */
public interface ProfileService {

    /**
     *
     * @param employeeId
     * @return
     */
    public Person getEmployeeById(String employeeId);

    /**
     *
     * @param person
     * @return
     */
    public boolean updatePersonLocationById(Person person);

    /**
     * Update follow Persn details: firstName, secondName, lastName, middleName,
     * birthdate, lastUpdatedBy, lastUpdatedOn.
     *
     * @param person Person details to be updated.
     * @return True if update was success otherwise false.
     */
    public boolean updatePersonById(Person person);

    /**
     *
     * @param person
     * @param phones
     * @return
     */
    public boolean updateEmployeeContactDetailsById(Person person, List<ContactNumber> phones);

    /**
     *
     *
     * @param address
     * @return
     */
    public boolean saveOrUpdateAddress(Address address);

    /**
     * Update avatar by employee id.
     *
     * @param employeeId
     * @param avatar
     * @return true if avatar was updated otherwise false.
     */
    public boolean updateAvatar(String employeeId, String avatar);
}
