<script setup>
import { reactive, useAttrs, onBeforeMount, capitalize } from 'vue';
import axios from 'axios';
const props = defineProps({
    phoneNumber: { type: [String, Number], default: null },
    channel: { type: Number, default: null },
});

const config = reactive({
    sip: { icon: 'phone', href: `sip:${props.phoneNumber}` },
    'say-simple': {
        icon: 'vn:saysimple',
        href: null,
        channel: props.channel,
    },
});
const type = Object.keys(config).find((key) => key in useAttrs()) || 'sip';

onBeforeMount(async () => {
    let { channel } = config[type];

    if (type === 'say-simple') {
        const { url, defaultChannel } = (await axios.get('SaySimpleConfigs/findOne'))
            .data;
        if (!channel) channel = defaultChannel;

        config[
            type
        ].href = `${url}?customerIdentity=%2B${props.phoneNumber}&channelId=${channel}`;
    }
});
</script>
<template>
    <QBtn
        v-if="phoneNumber"
        flat
        round
        :icon="config[type].icon"
        size="sm"
        color="primary"
        padding="none"
        :href="config[type].href"
        @click.stop
    >
        <QTooltip>
            {{ capitalize(type).replace('-', '') }}
        </QTooltip>
    </QBtn>
</template>
