Como deve funcionar o controle de ideias Tudo se resume a 3 pontos Pensamentos Capítulos Conexões Tudo que é digitado é um e separado pela ação do enter “quebra de linha” e um pensamento Essa informação escrita será a transcrição desse pensamento, todo pensamento pode ter subitens Todo pensamento adentado como subitem, terá o vínculo ao pensamento pai, sempre vincularemos o pensamento subitem com o pai direto, mesmo que esse subitem seja subitem de outro, sempre vincularemos a hierarquia acima através do vínculo de pensamento hash O dia efetivo é o filtro default e obrigatório todos possuem isso, todo canva parte desse filtro inicial e mostra ao usuário duas colunas Lado esquerdo: capítulos desse dia Capítulos são bloco de notas, ou seja eu terei visível no canto esquerdo a lista de capítulos do dia Lado direto, ao selecionar o capítulo notas, o lado direito preenche o notas que estava salvo a esse capítulo Ou seja no notas cada quebra de linha e um pensamento cadastrado e vinculado ao capítulo e segue a regra de itens e subitens Essa é a base do app Seria interessante a lógica técnica funcione assim, as views em PHP e o JS MANIPULANDO tudo, salvando uma estrutura de json em um textarea e que salve quando apertado ctrl+s, mas pense em um json bem independente de no a no, como se fosse um json de diagrama, ou seja não colocar json dentro do outro 3 sim objetos independentes onde tudo que precisa ser controlado seja feito pelos índices desse objeto, aí depois poderíamos ter esse mesmo textarea mas organizados de outras maneiras mas isso futuramente. Pensando em performance A ideia é essa o PHP gera as views, js executa a manipulação do dom e a gestão e criação dos dados pelo usuário de maneira fluída, e armazena todas as mudanças no json no textarea de um visual formulário escondigo, assim que o usuário solicitar o salvar, o sistema executa a ação do formulário escondido e api gerencia todas as mudanças necessárias em cada linha do pensamento. Atenção para que a proria view de cada elemento possa ser criada já com um id via atributos do html, data-*, e já insira no json para que tudo funcione, quando deletar uma linha, saber exatamente qual linha estamos alterando ou removendo