export interface ByDateData {
  [key: string]: PhotosData[];
}

export interface ByRegionData {
  id: number;
  country: string;
  name: string;
  flag: string;
  nm: boolean;
  dare: boolean;
  photos: PhotosData[];
}

export interface PhotosData {
  id: number;
  region_nm: number;
  region_dare: number;
  region: number;
  title: string;
  date: string;
  url_small: string;
  url_mid: string;
  url_full: string;
  album_id: number;
  album_name: string;
  uri?: string;
}

export interface AllRegions {
  id: number;
  dare: boolean;
  nm: boolean;
  country: string;
  name: string;
  flag: string;
}

export interface TempData {
  guid: string;
  link: string;
}

export interface ImageStatus {
  uri?: string;
  assetId: string;
  loaded: boolean;
  uploadResponse: TempData | null;
  dateTime: string | null;
  progress: number;
}

export interface TripsData {
  id: number;
  date_from: string;
  date_to: string;
  description: string;
  regions: RegionTripsData[];
  dates_missing: 0 | 1;
  year?: number | null;
}

export interface RegionTripsData {
  region_name: string;
  flag1: string;
  flag2: string | null;
  status: 0 | 1;
  id: number;
}

export interface RegionAddData {
  id: number;
  region_name: string;
  quality?: number;
  flag1?: string;
  flag2?: string | null;
  // status?: 0 | 1;
  hidden: boolean;
  name?: string;
  can_be_hidden?: boolean;
}

export interface SlowData {
  country_id: number;
  country: string;
  flag: string;
  mega: number[];
  visited: 0 | 1;
  slow11: 0 | 1;
  slow31: 0 | 1;
  slow101: 0 | 1;
  yes: number;
  info_text: string;
  visited_regions: number;
  default_region_id: number;
}

export interface NmRegion {
  id: number;
  flag_1: string;
  flag_2: string;
  region_name: string;
  essential: 0 | 1;
  quality: number;
  year: number;
  last: number;
  visits: number;
  future?: 0 | 1;
  edit_in_trips: 0 | 1;
}

export interface TCCRegion {
  flag1: string;
  flag2: string | null;
  id: number;
  name: string;
  visited: 0 | 1;
}

export interface DbRegion {
  id: number;
  name: string;
  region_photos: string;
  visitors_count: number;
}

export interface DareRegion {
  id: number;
  name: string;
  essential: 0 | 1;
  flag1: string;
  flag2: string | null;
  visited: string;
  new: 0 | 1;
  flag?: string;
}

export interface FixerType {
  month: number;
  year: number;
  selectedCountries: number[];
  name: string;
  email: string;
  phone: string;
  website: string;
  comment: string;
  anonymous: boolean;
}

export interface FixersData {
  id: number;
  month: number;
  year: number;
  contact: string;
  name: string;
  email: string;
  phone: string;
  web: string;
  comment: string;
  added_by_uid: number;
  added_by_name: string;
  can_rate: 0 | 1;
  can_edit: 0 | 1;
  ratings: Rating[];
}

type Rating = {
  rate: string;
  name: string;
  comment: string;
};
