feat: service category change rank fix
This commit is contained in:
		@@ -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)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user