text: from typing import Union
  
  from discord import Member, Role, User
  from discord.ext.commands import Cog, Greedy
  
  from bot.core import group
  from bot.utils import config
  
  
  class Tickets(Cog):
      def __init__(self, bot):
          self.bot = bot
          self.db = bot.db.tickets
  
      @property
      def config(self):
          return config()['ticketing']
  
      async def _create_ticket(self, ctx):
          pass
  
      @group(aliases=['t'])
      async def ticket(self, ctx):
          pass
  
      @ticket.command(aliases=['post', 'config'])
      async def setup(self, ctx):
          pass
  
      @ticket.command(aliases=['create'])
      async def new(self, ctx):
          await self._create_ticket(ctx)
          pass
  
      @ticket.command()
      async def close(self, ctx):
          pass
  
      @ticket.command()
      async def open(self, ctx):
          pass
  
      @ticket.command(aliases=['del'])
      async def delete(self, ctx):
          pass
  
      @ticket.command(aliases=['suspend'])
      async def block(self, ctx, user: Greedy[Union[Member, User]]):
          pass
      
      @ticket.command()
      async def add(self, ctx, entities: Greedy[Union[Member, Role]]):
          pass
  
      @ticket.command(aliases=['rem'])
      async def remove(self, ctx, entities: Greedy[Union[Member, Role]]):
          pass
  
      @Cog.listener('on_raw_reaction_add')
      async def reaction_create_ticket(self, payload):
          pass
  
  
  def setup(bot):
      bot.add_cog(Tickets(bot))