package io.github.memfis19.cadar.data.entity;
import java.io.Serializable;
import java.util.Date;
import io.github.memfis19.cadar.data.entity.property.EventProperties;
import io.github.memfis19.cadar.internal.utils.SyncUtils;
/**
* Created by memfis on 3/25/15.
* Representation of the main entity for events in stp calendar.
*/
public interface Event extends Serializable {
Long getEventId();
String getEventTitle();
String getEventDescription();
Date getOriginalEventStartDate();
Date getEventStartDate();
Date getEventEndDate();
/***
* Sets the new start date for new generating event.
*
* @param startEventDate
*/
void setEventStartDate(Date startEventDate);
/***
* Sets the new end date for new generating event.
*
* @param endEventDate
*/
void setEventEndDate(Date endEventDate);
/***
* Sets calendarId field generated with system calendar after sync it
*
* @param calendarId
* @see SyncUtils
*/
void setCalendarId(Long calendarId);
/***
* Return calendarId field generated with system calendar after sync it
*
* @return
* @see SyncUtils
*/
Long getCalendarId();
/***
* @return repeat period for current entity instance
* @see EventProperties.RepeatPeriod
*/
@EventProperties.RepeatPeriod
int getEventRepeatPeriod();
/***
* @return event icon url
*/
String getEventIconUrl();
/***
* @return boolean which indicates is event editable
*/
Boolean isEditable();
/***
* @return boolean which indicates is event length All day long
*/
Boolean isAllDayEvent();
}