Estou iniciando o desenvolvimento de um sistema que é novidade para mim.
Sempre participei de projetos onde o sistema era desenvolvido para um cliente em específico, já este sistema será "genérico" onde um novo cliente pode entrar no site, se cadastrar e começar a utilizar o sistema padrão por um período grátis. Após o término do período, ele deve pagar uma taxa mensal para continuar utilizando.
Existirá também módulos mais complexos, em que mediante pagamento será liberado para uso.
Pensei em fazer relacionamentos padrões, com tabelas que indicam se o usuário pagou ou não.. e qual módulo ele pagou ou não para utilizar, mas desta forma eu imagino que ficaria um tanto pesado para ficar consultando para injetar dependências, ou autorizar o acesso toda vez que o usuário realizar algo no sistema.
Um outro detalhe, é que este usuário "Master" poderá criar usuários abaixo dele, então toda vez que os usuários abaixo dele realizarem alguma operação, o sistema deve saber que caminho tomar com base nos dados do usuários "Master".
Alguém tem uma solução / ideia boa para tal cenário?