package com.gffny.ldrbrd.common.service;
import java.util.List;
import java.util.Map;
import com.gffny.ldrbrd.common.exception.ServiceException;
import com.gffny.ldrbrd.common.model.enums.TeeColour;
import com.gffny.ldrbrd.common.model.impl.Club;
import com.gffny.ldrbrd.common.model.impl.Course;
import com.gffny.ldrbrd.common.model.impl.CourseHole;
public interface ICourseClubService {
/**
*
* @return
* @throws ServiceException
*/
public abstract Course createCourse(String courseName, Club club,
TeeColour teeColour, Double slopeIndex, Integer par,
String courseImageReference) throws ServiceException;
/**
*
* @param clubName
* @return
*/
public abstract Club createClub(String clubName) throws ServiceException;
/**
*
* @return
* @throws ServiceException
*/
public abstract List<Club> getClubList() throws ServiceException;
/**
*
* @param courseName
* @param teeColour
* @return
* @throws ServiceException
*/
public abstract Course getCourseByNameAndTeeColour(String courseName,
TeeColour teeColour) throws ServiceException;
/**
*
* @param id
*/
public abstract Course getCourseById(String id) throws ServiceException;
/**
*
* @param golferId
* @return
* @throws ServiceException
*/
public abstract List<Course> getFavouriteCourseList(String golferId)
throws ServiceException;
/**
*
* @param golferId
* @param favouriteLimit
* @return
* @throws ServiceException
*/
public abstract List<Course> getFavouriteCourseList(String golferId,
int favouriteLimit) throws ServiceException;
/**
*
* @param courseHole
*/
public abstract void saveOrUpdateHole(CourseHole courseHole)
throws ServiceException;
/**
*
* @param id
* @return
*/
public abstract Map<Integer, CourseHole> getHoleListByCourseId(String id)
throws ServiceException;
/**
*
* @param id
* @param nineHole
* @return
*/
public abstract Map<Integer, CourseHole> getHoleListByCourseId(String id,
boolean isNineHole) throws ServiceException;
}