# Path: sirbot/slack/store/user.py
# class User(SlackItem):
# 
#     def __init__(self, id_, raw=None, dm_id=None, last_update=None,
#                  deleted=False):
#         """
#         Class representing a slack user.
# 
#         :param id_: id of the user
#         """
# 
#         super().__init__(id_, raw, last_update)
#         self.dm_id = dm_id
#         self.deleted = deleted
# 
#     @property
#     def admin(self):
#         return self._raw.get('is_admin', False)
# 
#     @admin.setter
#     def admin(self, _):
#         raise NotImplementedError
# 
#     @property
#     def bot(self):
#         return self._raw.get('is_bot', False)
# 
#     @bot.setter
#     def bot(self, _):
#         raise NotImplementedError
# 
#     @property
#     def bot_id(self):
#         return self._raw.get('profile', {}).get('bot_id', '')
# 
#     @bot_id.setter
#     def bot_id(self, _):
#         raise NotImplementedError
# 
#     @property
#     def send_id(self):
#         return self.dm_id
# 
# Path: sirbot/slack/errors.py
# class SlackMessageError(SlackError):
#     """Generic slack message error"""


import json
import logging
import asyncio
from ..user import User
from ...errors import SlackMessageError
        self._to = to

    @property
    def text(self):
        return self.content.text

    @text.setter
    def text(self, text):
        self.content.text = text

    @property
    def timestamp(self):
        return self.raw.get('ts') or self.raw.get('message', {}).get('ts')

    @timestamp.setter
    def timestamp(self, _):
        raise ValueError

    @property
    def attachments(self):
        return self.content.attachments

    @attachments.setter
    def attachments(self, attachments):
        self.content.attachments = attachments

    @property
    def thread(self):
        return self.raw.get('thread_ts', self.timestamp)


# Path: sirbot/slack/store/user.py
# class User(SlackItem):
# 
#     def __init__(self, id_, raw=None, dm_id=None, last_update=None,
#                  deleted=False):
#         """
#         Class representing a slack user.
# 
#         :param id_: id of the user
#         """
# 
#         super().__init__(id_, raw, last_update)
#         self.dm_id = dm_id
#         self.deleted = deleted
# 
#     @property
#     def admin(self):
#         return self._raw.get('is_admin', False)
# 
#     @admin.setter
#     def admin(self, _):
#         raise NotImplementedError
# 
#     @property
#     def bot(self):
#         return self._raw.get('is_bot', False)
# 
#     @bot.setter
#     def bot(self, _):
#         raise NotImplementedError
# 
#     @property
#     def bot_id(self):
#         return self._raw.get('profile', {}).get('bot_id', '')
# 
#     @bot_id.setter
#     def bot_id(self, _):
#         raise NotImplementedError
# 
#     @property
#     def send_id(self):
#         return self.dm_id
# 
# Path: sirbot/slack/errors.py
# class SlackMessageError(SlackError):
#     """Generic slack message error"""


# Path: sirbot/slack/store/message/message.py
import json
import logging
import asyncio
from ..user import User
from ...errors import SlackMessageError

        self._to = to

    @property
    def text(self):
        return self.content.text

    @text.setter
    def text(self, text):
        self.content.text = text

    @property
    def timestamp(self):
        return self.raw.get('ts') or self.raw.get('message', {}).get('ts')

    @timestamp.setter
    def timestamp(self, _):
        raise ValueError

    @property
    def attachments(self):
        return self.content.attachments

    @attachments.setter
    def attachments(self, attachments):
        self.content.attachments = attachments

    @property
    def thread(self):
        return self.raw.get('thread_ts', self.timestamp)


    @thread.setter