Atribuir ramais telefônicos aos gerentes

Para tornar a operação mais conveniente, você pode fornecer uma correspondência entre os ramais disponibilizados pelo serviço VoIP e os gerentes da conta da Kommo — isso permite ter mais informação sobre as chamadas. Esses dados serão usados ao registrar a chamada, para indicar qual gerente é responsável por ela, e também no recurso de encaminhamento inteligente, caso esteja implementado.

Veja a seguir um exemplo de como fazer isso. A tabela voip_users contém os ramais fornecidos pelo serviço VoIP. Alguns já estão atribuídos, outros não. Precisamos atribuir um ramal não utilizado para um novo usuário. Confira o diagrama sugerido para o banco de dados.

public static function assignExtension(
    int $kommoAccountId,
    int $kommoUserId,
    int $extensionId
): void {
    $managerExtension = VoipUsers::query()
        ->where('kommo_account_id', '=', $kommoAccountId)
        ->where('extension_id', '=', $extensionId)
        ->first();

    if ($managerExtension === null) {
        $managerExtension = VoipUsers::create()
            ->setKommoAccountId($kommoAccountId)
            ->setExtensionId($extensionId);
    }

    $managerExtension
        ->setKommoUserId($kommoUserId)
        ->save();
}