package com.atlassian.stash.internal.notification.pull.activity;

import com.atlassian.bitbucket.activity.Activity;

import javax.annotation.Nonnull;
import java.util.Date;
import java.util.Map;

/**
 * An activity in the context of a batch email, this could be an aggregate of
 * several concrete {@link Activity} objects.
 */
public interface BatchEmailActivity {

    /**
     * @return the date representing the activity in the batch
     */
    @Nonnull
    public Date getDate();

    /**
     * @return the type of activity
     */
    @Nonnull
    @SuppressWarnings("unused") // used in Soy template
    public BatchEmailActivityType getType();

    /**
     * @return a Soy compatible map of this batch activity's data
     */
    @Nonnull
    public Map<String, Object> asData();
}
