package hirondelle.fish.main.visit;
import java.util.*;
import hirondelle.web4j.model.Id;
import hirondelle.web4j.database.DAOException;
import hirondelle.web4j.util.Util;
import hirondelle.web4j.database.Db;
import hirondelle.web4j.database.DynamicSql;
public final class VisitDAO {
List<Visit> list(DynamicSql aOrderBy) throws DAOException {
return Db.search(Visit.class, VisitAction.VISIT_LIST, aOrderBy);
}
Visit fetch(Id aVisitId) throws DAOException {
return Db.fetch(Visit.class, VisitAction.VISIT_FETCH, aVisitId);
}
public Visit fetchNextFutureVisit() throws DAOException {
return Db.fetch(Visit.class, VisitAction.VISIT_FETCH_NEXT_FUTURE);
}
Id add(Visit aVisit) throws DAOException {
return Db.add(VisitAction.VISIT_ADD, baseParamsFrom(aVisit));
}
boolean change(Visit aVisit) throws DAOException {
Object[] params = Db.addIdTo(baseParamsFrom(aVisit), aVisit.getId());
return Util.isSuccess(Db.edit(VisitAction.VISIT_CHANGE, params));
}
void delete(Id aVisitId) throws DAOException {
Db.delete(VisitAction.VISIT_DELETE, aVisitId);
}
private Object[] baseParamsFrom(Visit aVisit){
return new Object[]{aVisit.getRestaurant().getId(), aVisit.getLunchDate(), aVisit.getMessage()};
}
}