We are treating IDs differently, i.e. taking it into account only if other criteria is not there, making `buildQueryConditions` mask the logic of processing IDs. Why?
We are using the same DTO struct to pass data between search and list functions, and it's becoming too cumbersome because we often don't need all data from the DTO, beating the purpose of the DTO itself.
_Originally posted by @dborovcanin in https://github.com/absmach/magistrala/pull/2305#discussion_r1663881189_