feat: service category change rank fix

This commit is contained in:
2024-10-10 01:13:30 +03:00
parent eafd4c94f5
commit 1eb85279b5

View File

@@ -130,14 +130,21 @@ class ServiceService(BaseService):
service = await (self.session.get(Service, raw_service.id))
if not service:
return ServiceUpdateResponse(ok=False, message="Услуга не найдена")
prev_category_id = service.category_id
new_category_id = request.data.category.id
service_dict = raw_service.dict()
service_dict['category_id'] = raw_service.category.id
del service_dict['category']
del service_dict['price_ranges']
del service_dict['category_prices']
del service_dict['is_placeholder']
if prev_category_id != new_category_id:
latest_rank = await self.get_latest_rank_in_category(new_category_id, ServiceType(raw_service.service_type))
if not latest_rank:
latest_rank = middle(Bucket.BUCEKT_0)
else:
latest_rank = lexorank.parse(latest_rank)
service_dict['rank'] = str(latest_rank.next())
await self.session.execute(
update(Service)
.where(Service.id == raw_service.id)