package com.atlassian.bitbucket.internal.branch.model.dao.v0;

import com.atlassian.bitbucket.internal.branch.model.dao.AoBranchModelConfiguration;
import net.java.ao.Accessor;
import net.java.ao.Entity;
import net.java.ao.Mutator;
import net.java.ao.Preload;
import net.java.ao.schema.NotNull;
import net.java.ao.schema.Table;

@Table("BRANCH_TYPE")
@Preload
public interface AoBranchTypeConfigurationV0 extends Entity {

    String BRANCH_MODEL_ACCESSOR_VALUE = "FK_BM_";
    String TYPE_ID_COLUMN = "TYPE_ID";
    String TYPE_PREFIX_COLUMN = "PREFIX";
    String TYPE_ENABLED_COLUMN = "IS_ENABLED";

    @NotNull
    @Accessor(BRANCH_MODEL_ACCESSOR_VALUE)
    AoBranchModelConfiguration getBranchModel();

    @Accessor(TYPE_ID_COLUMN)
    String getTypeId();

    @Mutator(TYPE_ID_COLUMN)
    void setTypeId(String typeId);

    @Accessor(TYPE_PREFIX_COLUMN)
    String getPrefix();

    @Mutator(TYPE_PREFIX_COLUMN)
    void setPrefix(String prefix);

    @NotNull
    @Accessor(TYPE_ENABLED_COLUMN)
    boolean isEnabled();

    @Mutator(TYPE_ENABLED_COLUMN)
    void setEnabled(boolean enabled);
}
