from apps.calls.repositories import MessageRepository
import logging


logger = logging.getLogger(__name__)

class MessageService:

    @staticmethod
    def list_messages(user, qs=None):
        if qs is None:
            qs = MessageRepository.base_queryset()

        if user.is_superuser:
            return qs.order_by("-created_at")

        company = getattr(user, "active_company", None)

        if not company:
            return qs.none()

        return MessageRepository.list_for_user(
            user,
            company,
        ).order_by("-created_at")

    @staticmethod
    def get_message(user, msg_id):
        return MessageRepository.get_by_id(msg_id, user)

    @staticmethod
    def mark_as_read(user, msg_id):
        msg = MessageService.get_message(user, msg_id)

        if msg is None:
            return None   

        return MessageRepository.mark_as_read(msg)
