Drop links or images here to add them to the editor.

Favorite sem perder os dados

Uma pessoa quer marcar um check-in do PaceUp como favorito. Essa ação deve alterar apenas o estado de favorito, preservando a identidade e os demais dados do check-in.

Sua tarefa

Complete a função favoritarCheckin, que recebe um objeto do tipo Checkin:

type Checkin = {
  id: string;
  message: string;
  ownerId: string;
  favorite: boolean;
};

function favoritarCheckin(checkin: Checkin): Checkin

A função deve retornar um novo objeto com:

O objeto original deve permanecer intacto. Mesmo quando o check-in já for favorito, retorne um novo objeto com favorite: true.

Exemplos

Considere este check-in:

const checkin: Checkin = {
  id: "ci-10",
  message: "Treino concluído!",
  ownerId: "user-1",
  favorite: false,
};

Ao chamar a função:

const resultado = favoritarCheckin(checkin);

// resultado:
// {
//   id: "ci-10",
//   message: "Treino concluído!",
//   ownerId: "user-1",
//   favorite: true,
// }

// O original permanece com favorite: false.
// resultado === checkin deve ser false: são objetos diferentes.

Se o check-in recebido já tiver favorite: true, o retorno também terá favorite: true. Favoritar não deve desfazer a marcação.

Técnica a praticar

Pratique a criação de um novo objeto e a preservação dos campos que não devem mudar. Você pode usar o operador spread (...) para copiar as propriedades do check-in. Observe a ordem das propriedades ao definir o novo valor de favorite.

Esta atividade trabalha com objetos em memória, sem acesso ao banco de dados.

Mantenha o tipo Checkin, o nome da função e seu parâmetro. Não utilize any ou console.log: o resultado deve ser devolvido com return.