package org.gbif.checklistbank.service;
import org.gbif.api.model.checklistbank.NameUsage;
import org.gbif.api.model.checklistbank.NameUsageMetrics;
import org.gbif.api.model.checklistbank.ParsedName;
import org.gbif.api.model.checklistbank.VerbatimNameUsage;
import org.gbif.checklistbank.model.UsageExtensions;
import java.util.Map;
import java.util.UUID;
import javax.annotation.Nullable;
/**
*
*/
public interface UsageSyncService {
int syncUsage(boolean insert, NameUsage usage, ParsedName pn, NameUsageMetrics metrics);
void syncUsageExtras(boolean insert, UUID datasetKey, int usageKey, @Nullable VerbatimNameUsage verbatim, @Nullable UsageExtensions extensions);
void updateForeignKeys(int usageKey, Integer parentKey, Integer basionymKey);
void insertNubRelations(UUID datasetKey, Map<Integer, Integer> relations);
int deleteDataset(UUID datasetKey);
void delete(int key);
}