Salvar tempo total que um registro fica numa sessão/etapa

Pessoal, alguém tem uma dica ou melhor prática para computar o tempo que um registro fica em determinada etapa?

Exemplo:
Tabela com campo fase do tipo lista: Esperando, Fazendo e Feito.

Criar os campos:
Tempo Esperando = tempo que o registro fica na fase Esperando.
Tempo Fazendo = tempo que o registro fica na fase Fazendo.

  1. O registro passa 30 minutos na fase Esperando.
  2. O registro é movido para a fase Fazendo e passa 40 minutos.
  3. O registro voltar a fase Esperando e passa mais 50 minutos.
  4. Por último o registro é movido para a fase Feito.

Ao final do processo teríamos:

Tempo Esperando = 30 min + 50 min = 80 minutos
Tempo Fazendo = 40 minutos.

O ideal é que os campos Tempo esperando e fazendo não sejam editáveis.

Opa @marlostavora

Atualmente você só consegue com low-code.

Se você quiser fazer na mesma tabela, você precisaria de um campo de “Tempo em fase” (ele registra a data da última mudança de fase) , e aí fazer algo como:

if($objectNew['fase'] != $objectOld['fase']){
    if($objectNew['fase'] == 'Esperando){
        $objectNew['tempo_em_esperando'] = $objectNew['tempo_em_esperando'] + (((time()-strtotime(date_format($objectNew['ttt'],"Y-m-d H:i:s"))))/60);
    }
    else{
        $objectNew['tempo_em_fazendo'] = $objectNew['tempo_em_fazendo'] + (((time()-strtotime(date_format($objectNew['ttt'],"Y-m-d H:i:s"))))/60);
    }
}

Obrigado, Marcus. Vou testar