package example;

import java.util.List;

public final class SearchService {
    private final OrderMapper mapper;
    public SearchService(OrderMapper mapper) { this.mapper = mapper; }
    public List<Order> search(Long tenantId, OrderStatus status, List<Long> ids, String sort, String literal) {
        if (tenantId == null || tenantId <= 0) throw new IllegalArgumentException("tenantId required");
        if (!"id".equals(sort) && !"amount".equals(sort)) throw new IllegalArgumentException("Unsupported sort");
        String pattern = literal == null ? null
                : "%" + literal.replace("!", "!!").replace("%", "!%").replace("_", "!_") + "%";
        return mapper.search(tenantId, status, ids, sort, pattern);
    }
}
