export const NONE_SELECT_VALUE = "__none__";

export type SelectOption = { value: string; label: string };

export type GenomeMapQuery = {
  map_name?: string;
  common_crop_name?: string;
  type?: string;
};

export type LinkageGroupQuery = {
  linkage_group_name?: string;
  map_db_id?: string;
};

export type MarkerPositionQuery = {
  map_db_id?: string;
  linkage_group_name?: string;
  variant_db_id?: string;
};

export type GenomeMapRecord = {
  id: string;
  mapDbId?: string;
  map_name?: string | null;
  mapName?: string | null;
  map_pui?: string | null;
  mapPUI?: string | null;
  common_crop_name?: string | null;
  commonCropName?: string | null;
  scientific_name?: string | null;
  scientificName?: string | null;
  type?: string | null;
  unit?: string | null;
  comments?: string | null;
  documentation_url?: string | null;
  documentationURL?: string | null;
  published_date?: string | null;
  publishedDate?: string | null;
  linkage_group_count?: number | null;
  linkageGroupCount?: number | null;
  marker_count?: number | null;
  markerCount?: number | null;
};

export type LinkageGroupRecord = {
  id: string;
  linkage_group_db_id?: string;
  linkageGroupDbId?: string;
  linkage_group_name?: string | null;
  linkageGroupName?: string | null;
  max_position?: number | null;
  maxPosition?: number | null;
  marker_count?: number | null;
  markerCount?: number | null;
  map_db_id?: string | null;
  mapDbId?: string | null;
  map_name?: string | null;
  mapName?: string | null;
};

export type MarkerPositionRecord = {
  id: string;
  marker_position_db_id?: string;
  markerPositionDbId?: string;
  linkage_group_db_id?: string;
  linkageGroupDbId?: string;
  linkage_group_name?: string | null;
  linkageGroupName?: string | null;
  variant_db_id?: string | null;
  variantDbId?: string | null;
  variant_name?: string | null;
  variantName?: string | null;
  position?: number | null;
  map_db_id?: string | null;
  mapDbId?: string | null;
  map_name?: string | null;
  mapName?: string | null;
};

export type GenomeMapDetail = GenomeMapRecord & {
  linkageGroups: LinkageGroupRecord[];
  markerPositions: MarkerPositionRecord[];
};
