Olá, Marcus! Entendo que a criação da subcamada business possa parecer um pouco confusa no começo, principalmente quando pensamos em uma situação com múltiplos modelos. Vou tentar esclarecer isso para você.
No caso de ter outros modelos além do "Entry", você teria algumas opções para organizar o business, especificamente o api_workflow.dart e o dao_workflow.dart.
Criar classes abstratas para cada modelo: Esta é uma abordagem mais tradicional e segura. Cada modelo teria sua própria classe abstrata, garantindo que as regras de negócio para cada modelo estejam claramente definidas e separadas. Por exemplo, se você tivesse um modelo "User", você poderia ter uma classe UserApiWorkflow e uma classe UserDaoWorkflow.
Mudar a classe para um tipo genérico: Esta é uma abordagem mais flexível e reutilizável, mas pode ser um pouco mais complexa. Você poderia ter uma única classe abstrata que pode lidar com qualquer tipo de modelo. No entanto, isso pode tornar o código mais difícil de entender e manter, especialmente se os diferentes modelos tiverem regras de negócio muito diferentes.
A escolha entre essas opções depende muito do seu projeto específico e das suas necessidades. Se os seus modelos têm regras de negócio muito diferentes, pode ser mais fácil e seguro criar classes abstratas separadas. Por outro lado, se os modelos são muito similares e você quer evitar a repetição de código, a abordagem genérica pode ser uma boa opção.
Por exemplo, se você tem um modelo de "User" e um modelo de "Admin", ambos com operações muito similares de CRUD (Create, Read, Update, Delete), você poderia optar pela abordagem genérica. Mas se você tem um modelo de "User" e um modelo de "Product", com regras de negócio muito diferentes, talvez seja melhor optar por classes abstratas separadas.
Espero ter ajudado e bons estudos!