sequencialDesconhecidoEm = new Carbon($sequencialDesconhecidoEm); $this->sexoId = $sexoId; $this->caracteristicasFisicas = $caracteristicasFisicas; } public function save() { $id = $this->getNextId(); $cidadao = Cidadao::create([ 'nome' => "DESCONHECIDO $id", 'sexo_id' => $this->sexoId, 'caracteristicas_fisicas' => $this->caracteristicasFisicas, ]); $paciente = $cidadao->paciente()->create([ 'sequencial_desconhecido' => $this->getNextSequencialDesconhecido(), 'sequencial_desconhecido_em' => $this->sequencialDesconhecidoEm, ]); IntegracaoCidadaoService::integrar($cidadao->id); return $paciente; } private function getNextId() { return Cidadao::max('id') + 1; } private function getNextSequencialDesconhecido() { $date = $this->sequencialDesconhecidoEm->format('Y-m-d'); return Paciente::whereDate('sequencial_desconhecido_em', $date) ->max('sequencial_desconhecido') + 1; } }