Estou em um dilema aqui de como fazer a lógica para atualizar a assinatura em um SASS. Minha duvida não é sobre código e sim a lógica que é feita a atualização da assinatura, como é cobrado , quando é atualizado e etc.
Tenho um SASS com 3 tipos de planos 2 mensais e 1 anual.
Ex: Plano 1 - R$ 20,00 (mensal)
Ex: Plano 2 - R$ 30,00 (mensal)
Ex: Plano 3 - R$ 2000,00 (anual)
Caso 1: A pessoa tem o plano 1 e quer atualizar para plano 2.
Se o plano 1 dela estiver terminado eu cobro normalmente o plano 2. Porém se ela tiver nos primeiros dias do plano 1 ? Eu cobro o preço do plano 2 integralmente ? ou eu cobro só o restante plano 1 (que ela já tem) MENOS o plano 2 (plano que ela quer). Ou eu só atualizo quando o plano 1 dela acabar (ou seja no final do período de assinatura) ?
Caso 2: É ao contrário do caso 1.
Ou seja se a pessoa tem um plano 3 e quer passar para o plano 2. Ela pagou R$30 e quer passar para R$20. Eu no proximo pagamento diminuo R$10 do plano de R$ 20 (pois ela tem credito) ? Ou eu só troco o plano quando acabar o plano dela ?
Caso 3: Caso ela tem o plano 3 que é anual.
Já que ela pagou por 1 ano. O que eu faço ? nesse caso eu cancelo o plano dela e troco e ela perde o valor pago ? ou só atualizo quando acabar ?
Obs: Não gostaria que a pessoa tivesse créditos em conta. Pois ai teria que mudar a implementação. Seria bom alguém da Alura responder pois tem experiência já com o sistema de planos.
Desde já agradeço