test(extractEntityCityId): prioritize address over top-level city in entity extraction
This commit is contained in:
@@ -46,10 +46,15 @@ export function resolveCityDisplayName(cityInfo) {
|
||||
export function extractEntityCityId(entity) {
|
||||
if (!entity) return null;
|
||||
|
||||
// ترتیب مهم است: آدرس قبل از فیلد city سطحبالا.
|
||||
// پاسخ جزئیات پزشک هر دو را دارد و میتوانند اختلاف داشته باشند — city سطحبالا از
|
||||
// یک رابطهٔ ManyToMany قدیمی میآید، ولی هم فیلتر city_id بکاند و هم فیلد city در
|
||||
// پاسخ لیست بر پایهٔ آدرساند. اگر اینجا فیلد قدیمی برنده شود، canonical پزشک به
|
||||
// شهری میرود که sitemap او را آنجا نگذاشته است.
|
||||
const candidates = [
|
||||
entity.city_id,
|
||||
...(Array.isArray(entity.city) ? entity.city.map((c) => c?.id) : [entity.city?.id]),
|
||||
...(Array.isArray(entity.address) ? entity.address.map((a) => a?.city?.id) : []),
|
||||
...(Array.isArray(entity.city) ? entity.city.map((c) => c?.id) : [entity.city?.id]),
|
||||
].filter((id) => id != null);
|
||||
|
||||
const withDomain = candidates.find((id) => findDomainByCityId(id));
|
||||
|
||||
Reference in New Issue
Block a user