docs: def _update_geography(self, countries, regions, cities, city_country_mapping):
          """ Update database with new countries, regions and cities """
          existing = {
              'cities': list(City.objects.values_list('id', flat=True)),
              'regions': list(Region.objects.values('name', 'country__code')),
              'countries': Country.objects.values_list('code', flat=True)
          }
          for country_code in countries:
              if country_code not in existing['countries']:
                  Country.objects.create(code=country_code, name=ISO_CODES.get(country_code, country_code))
          for entry in regions:
              if entry not in existing['regions']:
                  Region.objects.create(name=entry['name'], country_id=entry['country__code'])
          for entry in cities:
              if int(entry['id']) not in existing['cities']:
                  code = city_country_mapping.get(entry['id'])
                  if code:
                      region = Region.objects.get(name=entry['region__name'], country__code=code)
                      City.objects.create(id=entry['id'], name=entry['name'], region=region,
                                      latitude=entry.get('latitude'), longitude=entry.get('longitude'))