/** * City Enum * Syrian cities used in property locations * Used in: Property search filters, location display */ const City = Object.freeze({ DAMASCUS: 'دمشق', ALEPPO: 'حلب', HOMS: 'حمص', LATAKIA: 'اللاذقية', DARAA: 'درعا', TARTOUS: 'طرطوس', SUWEIDA: 'السويداء', DEIR_EZZOR: 'دير الزور', RAQQA: 'الرقة', IDLIB: 'إدلب', HASAKAH: 'الحسكة', QAMISHLI: 'القامشلي', RURAL_DAMASCUS: 'ريف دمشق', }); export const CityEnum = Object.freeze({ DAMASCUS: 0, ALEPPO: 1, HOMS: 2, LATAKIA: 3, DARAA: 4, TARTOUS: 5, SUWEIDA: 6, DEIR_EZZOR: 7, RAQQA: 8, IDLIB: 9, HASAKAH: 10, Qamishli: 11, RURAL_DAMASCUS: 12, }); // All cities as a flat array const CitiesList = Object.freeze(Object.values(City)); /** * Extract city name from a full address string * @param {string} address * @returns {string} */ function extractCity(address) { if (!address) return ''; for (const city of CitiesList) { if (address.includes(city)) return city; } return ''; } const CityTranslationKeys = Object.freeze({ [City.DAMASCUS]: 'city.damascus', [City.ALEPPO]: 'city.aleppo', [City.HOMS]: 'city.homs', [City.LATAKIA]: 'city.latakia', [City.DARAA]: 'city.daraa', [City.TARTOUS]: 'city.tartous', [City.SUWEIDA]: 'city.suweida', [City.DEIR_EZZOR]: 'city.deirEzzor', [City.RAQQA]: 'city.raqqa', [City.IDLIB]: 'city.idlib', [City.HASAKAH]: 'city.hasakah', [City.QAMISHLI]: 'city.qamishli', [City.RURAL_DAMASCUS]: 'city.ruralDamascus', }); export { City, CitiesList, extractCity, CityTranslationKeys, };