package com.atlassian.bitbucket.internal.defaultreviewers.model;

import com.atlassian.bitbucket.repository.Repository;
import com.atlassian.bitbucket.repository.ref.restriction.RefMatcher;
import com.atlassian.bitbucket.user.ApplicationUser;

import java.util.Collection;

/**
 * The details about the branches involved in a pull request required to determine who should be listed as a default reviewer.
 * Java class for storing data out of {@code AoReviewer}
 *
 * @since 1.0
 */
public interface PullRequestCondition {

    RefMatcher getFromMatcher();

    RefMatcher getToMatcher();

    Repository getRepository();

    Collection<ApplicationUser> getReviewers();

    /**
     * Returns the number of approvals required from this set of default reviewers (0 if isRequired = false).
     */
    int getRequiredApprovals();

    int getId();
}