package de.flower.rmt.ui.page.event.player;
import de.flower.rmt.model.db.entity.Comment;
import de.flower.rmt.model.db.entity.Invitation;
import de.flower.rmt.model.db.entity.QInvitation;
import de.flower.rmt.model.db.entity.event.Event;
import de.flower.rmt.security.ISecurityService;
import de.flower.rmt.service.ICommentManager;
import de.flower.rmt.service.IInvitationManager;
import org.apache.wicket.injection.Injector;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.LoadableDetachableModel;
import org.apache.wicket.spring.injection.annot.SpringBean;
/**
* @author flowerrrr
*/
public class EventInvitationModel extends LoadableDetachableModel<Invitation> {
@SpringBean
private ISecurityService securityService;
@SpringBean
private IInvitationManager invitationManager;
@SpringBean
private ICommentManager commentManager;
private IModel<Event> eventModel;
public EventInvitationModel(IModel<Event> eventModel) {
this.eventModel = eventModel;
Injector.get().inject(this);
}
@Override
protected Invitation load() {
final Invitation invitation = invitationManager.findByEventAndUser(eventModel.getObject(), securityService.getUser(), QInvitation.invitation.event, QInvitation.invitation.comments);
// init comment with main comment of current user (either the player or manager)
Comment comment = commentManager.findByInvitationAndAuthor(invitation, securityService.getUser(), 0);
if (comment != null) {
invitation.setComment(comment.getText());
}
return invitation;
}
}