export const NONE_SELECT_VALUE = "__none__";

export interface SelectOption {
  value: string;
  label: string;
}

export interface ReferenceSetQuery {
  reference_set_name?: string;
  assembly_pui?: string;
}

export interface ReferenceQuery {
  reference_name?: string;
  reference_set_id?: string;
}

export interface ReferenceSetRecord {
  id: string;
  referenceSetDbId: string;
  referenceSetName: string | null;
  reference_set_name: string | null;
  assemblyPUI: string | null;
  assembly_pui: string | null;
  description: string | null;
  isDerived: boolean | null;
  is_derived: boolean | null;
  md5checksum: string | null;
  sourceURI: string | null;
  source_uri: string | null;
  speciesOntologyTerm: string | null;
  species_ontology_term: string | null;
  speciesOntologyTermURI: string | null;
  species_ontology_termuri: string | null;
  sourceGermplasmDbId: string | null;
  source_germplasm_id: string | null;
  sourceGermplasmName: string | null;
  source_germplasm_name: string | null;
  reference_count?: number | null;
  variantset_count?: number | null;
  variant_count?: number | null;
}

export interface ReferenceRecord {
  id: string;
  referenceDbId: string;
  referenceName: string | null;
  reference_name: string | null;
  referenceSetDbId: string | null;
  reference_set_id: string | null;
  referenceSetName: string | null;
  reference_set_name: string | null;
  length: number | string | null;
  md5checksum: string | null;
  sourceDivergence: number | string | null;
  source_divergence: number | string | null;
  bases_page_count?: number | null;
  bases_total_length?: number | null;
}

export interface ReferenceBasesRecord {
  id: string;
  referenceBasesDbId: string;
  reference_id: string | null;
  referenceDbId: string | null;
  reference_name: string | null;
  referenceName: string | null;
  page_number: number | string | null;
  pageNumber: number | string | null;
  bases: string | null;
}

export interface ReferenceSetPageOptions {
  referenceSets: SelectOption[];
  references: SelectOption[];
  germplasm: SelectOption[];
}
