from typing import List

import disnake
from disnake import OptionChoice
from disnake.ext import commands

from lib import logger


class Testing(commands.Cog, name='Testing'):
    def __init__(self, bot: commands.Bot):
        self.bot = bot  # defining bot as global var in class

    @commands.Cog.listener()  # this is a decorator for events/listeners
    async def on_ready(self):
        logger.info(f'Cog {__name__.split(".")[1]} is ready!.')

    @commands.slash_command(
        name='select_audio',
        description='Select Audios from List'
    )
    async def select_audio(self, inter, audios: str):
        pass

    @select_audio.autocomplete('audios')
    async def _list_audios(self,
                           inter: disnake.ApplicationCommandInteraction,
                           current: str) -> List[OptionChoice]:
        pass


def setup(bot):  # an extension must have a setup function
    bot.add_cog(Testing(bot))  # adding a cog
