01 — Regras de negócio¶
Objetivo¶
Este documento reúne as regras de negócio propostas para o aplicativo de streaming. Elas orientam a modelagem, a implementação da API e os testes. Os limites numéricos, os critérios de moderação e as políticas comerciais que ainda não foram definidos devem ser acordados antes da implementação; não devem ser tratados como valores implícitos.
1. Usuários, contas e permissões¶
- O cadastro deve exigir dados de conta válidos e verificação do endereço de e-mail antes de habilitar as funcionalidades que dependem de uma conta confirmada.
- A plataforma deve distinguir, no mínimo, usuários básicos, criadores de conteúdo e administradores:
- Usuários básicos podem criar e gerenciar as próprias playlists, mas não podem publicar conteúdo.
- Criadores podem publicar conteúdo e gerenciar as próprias publicações.
- Administradores podem administrar usuários, conteúdos e playlists conforme as permissões administrativas definidas para a plataforma.
- Cada usuário pode consultar e gerenciar os próprios dados e recursos. Um usuário não pode alterar ou excluir a playlist de outra pessoa; a exceção é uma ação administrativa autorizada.
- A identidade do proprietário deve ser determinada pelo sistema a partir da conta autenticada, e não confiada a um identificador enviado pelo cliente.
2. Conteúdos e publicação¶
- Somente criadores autorizados podem publicar conteúdos, nos formatos aceitos pela plataforma, como áudio e vídeo.
- Cada conteúdo deve ter título, descrição e miniatura. O título deve ser único entre os conteúdos do mesmo criador.
- O criador pode definir o conteúdo como público ou privado. Conteúdos públicos podem ser descobertos e reproduzidos conforme as permissões da plataforma. Conteúdos privados só podem ser acessados pelo criador e por usuários explicitamente autorizados.
- Antes da publicação, o conteúdo deve passar pelo processo de moderação definido pela plataforma, para verificar conformidade com as regras de uso e direitos autorais. O método e os critérios de aprovação precisam ser especificados.
- O conteúdo deve possuir um estado de publicação, como rascunho, publicado ou bloqueado, para distinguir itens ainda não disponíveis, disponíveis ao público e impedidos de circular.
3. Playlists¶
- Usuários autenticados podem criar e gerenciar playlists próprias.
- O título de uma playlist deve ser único no conjunto de playlists do mesmo proprietário.
- Um mesmo conteúdo não pode aparecer mais de uma vez na mesma playlist.
- O proprietário pode definir uma playlist como pública ou privada. Uma playlist pública só pode incluir conteúdos públicos; uma playlist privada pode incluir conteúdos públicos ou privados que o proprietário tenha permissão para acessar.
- Conteúdos privados incluídos em playlists privadas não se tornam acessíveis a outros usuários por meio da playlist.
- O proprietário pode alterar a ordem dos conteúdos da playlist.
- Limites para a quantidade de playlists por usuário, quando aplicáveis, devem ser configurados e comunicados pela plataforma.
4. Consumo e interação com conteúdos¶
- Conteúdos públicos podem ser reproduzidos por usuários que atendam às permissões de acesso da plataforma. Conteúdos privados só podem ser reproduzidos por usuários autorizados.
- Se houver download, o acesso poderá ser restrito a assinantes premium, com limites por período. As condições e os limites devem ser definidos antes da implementação.
- Usuários podem favoritar conteúdos para encontrá-los posteriormente. Caso exista um limite para contas básicas, o valor deve ser definido e comunicado.
- Se comentários e avaliações forem habilitados, eles devem estar associados ao usuário e ao conteúdo correspondente e seguir as regras de convivência da plataforma.
- Usuários podem reportar conteúdos que considerem impróprios ou que violem as regras. A plataforma deve definir como esses relatos serão analisados e quais ações podem resultar da análise.
5. Notificações¶
- Usuários que acompanham um criador podem receber uma notificação quando ele publicar um novo conteúdo.
- A plataforma pode notificar usuários sobre alterações relevantes em playlists ou conteúdos que acompanham, incluindo exclusão ou mudança de visibilidade.
- Os eventos que geram notificações, os canais utilizados e as preferências de recebimento devem ser definidos para cada implementação.
6. Assinaturas e recursos premium¶
- A plataforma pode oferecer planos premium com benefícios como acesso a conteúdos exclusivos, acesso antecipado, limites maiores para playlists e favoritos ou permissão de download.
- Se houver cobrança recorrente, a assinatura deve registrar seu período e estado, permitir cancelamento e aplicar as regras de renovação acordadas.
- O acesso a recursos premium deve ser concedido apenas enquanto a assinatura estiver válida, de acordo com as condições do plano.
- Planos, benefícios, limites, cobrança, renovação e efeitos do cancelamento devem ser especificados antes de integrar um serviço de pagamento.
7. Segurança, privacidade e conformidade¶
- Dados pessoais devem ser tratados conforme a legislação aplicável e a política de privacidade da plataforma.
- Dados pessoais devem ser acessíveis somente ao próprio usuário e a administradores autorizados, respeitando o princípio do menor privilégio.
- A autenticação deve proteger as contas, utilizar senhas armazenadas de forma segura e aplicar os mecanismos de proteção definidos para os perfis e operações.
- A plataforma deve limitar requisições abusivas e definir medidas contra uso automatizado ou excessivo da API.
- Dados e conteúdos privados devem permanecer protegidos em todas as operações, incluindo listagem, busca, playlists e reprodução.
Orientações para implementação e validação¶
- Converter cada regra aplicável em critérios de aceitação verificáveis.
- Aplicar as regras nos pontos adequados: validação da API, autorização, modelo de domínio e restrições do banco de dados.
- Testar os casos permitidos e negados, incluindo acesso anônimo, acesso por outro usuário, conteúdo privado e ações administrativas.
- Documentar como cada regra se relaciona com os modelos, endpoints e testes.
- Confirmar com os responsáveis pelo produto os limites numéricos e as políticas ainda abertas antes de implementá-los.