Eu tenho uma entidade CondicaoPagamento, que é relacionada com uma entidade Pedido;
Para determinado cliente, só é possível criar um pedido novo com condições de pagamento vigentes, e sendo assim criei o seguinte método onde eu recupero as condições de pagamento filtrando pela vigência:
Porem em outro cliente, a vigência não é levada em consideração, fazendo com que retorne todas as condições de pagamento existentes.
Como eu faço isso no repositório? Crio outro método? Abstraio o método para o cliente? Uso um Strategy?
Uma particularidade é que tenho muitos clientes, cada um com um filtro diferente, e tenho medo de acontecer uma “explosão de métodos” dentro do repositório;
Condição de pagamento é somente um dos atributos que é diferente para cada cliente, tambem tenho Tabela de preço, e forma de pagamento que varia. Faria um Strategy com Factory para cada?
Cada cliente é uma história diferente.
Eu posso ter varias combinações diferentes de estratégia de busca de tabela de preço, condição de pagamento, tipo de cobrança; Posso ter até uma que depende da outra (O tipo de cobrança é condicionado a condição de pagamento), ou todos independentes;