Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Notas privadas só para quem tem conta no site #60

Open
hdoro opened this issue Dec 10, 2024 — with Linear · 0 comments
Open

Notas privadas só para quem tem conta no site #60

hdoro opened this issue Dec 10, 2024 — with Linear · 0 comments
Labels
Feature New feature or request

Comments

Copy link
Owner

hdoro commented Dec 10, 2024

  1. Schema do banco de dados
    1. Novo enum NotePublishStatus com valores PRIVATE, COMMUNITY e PUBLIC- documentação
      1. scalar type NotePublishStatus extending enum<PRIVATE,COMMUNITY,PUBLIC>;
    2. Nova propriedade publish_status no objeto Note, com esse enum
      1. Migrar notas existentes a partir do public:
      2. public: true -> publish_status: PUBLIC
      3. public: false -> publish_status: COMMUNITY
    3. Deprecar a propriedade public
    4. 💡 vide a documentação de schema migration
  2. Tipagem e schema de TS
    1. Após o schema do EdgeDB estar certinho, rode bun generate:all pra atualizar os tipos de TS a partir do banco de dados atualizado
    2. Em src/utils/labels.ts crie o NOTE_PUBLISH_STATUS_TO_LABEL, se inspirando no EDIT_SUGGESTION_STATUS_TO_LABEL
    3. Em src/schemas.ts
      1. Crie NotePublishStatus a partir do objeto em labels.ts, similar ao VegetableCoreData.gender
      2. modifique NoteData pra fazer o public opcional e incluir publish_status: NotePublishStatus
  3. NoteForm
    1. Remover o campo public
    2. Criar um campo publish_status com um RadioGroupInput (depois podemos fazer uma interface melhorzinha, essa não vai funcionar tão bem no celular)
    3. Trocar o label do campo published_at pra "Enviada em" (ao invés de "Publicada em")
  4. Envio das notas
    1. Modifique src/mutations.ts pra incluir publish_status tanto na insertNotesMutation quanto na updateNotesMutation, e transforme public em opcional
    2. Modifique src/actions/createNotes.ts pra incluir o publish_status na mutação pro EdgeDB
  5. Renderização
    1. Nas queries de notas (NotesIndex, Homepage, ProfilePage, Vegetal, etc.), incluir um parâmetro isSignedIn ou algo do tipo pra esconder as notas com publish_status ≠ PUBLIC pra quem não tiver logado
    2. Pra usuários sem conta, talvez checar se tem alguma nota COMMUNITY e mostrar um aviso na página do vegetal - "Você tá perdendo, hein?"
@hdoro hdoro added the Feature New feature or request label Dec 10, 2024 — with Linear
@hdoro hdoro changed the title Fazer todo o site privado só pra quem tem conta aprovada Notas privadas só para quem tem conta no site Jan 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant