# -*- coding: utf-8 -*-

import json

from django.conf import settings

from message.models import SystemMessageDeleteInfo, SystemMessageReadInfo
from utils.redis.rkeys import SYSTEM_MESSAGE_DELETED_INFO, SYSTEM_MESSAGE_READ_INFO


r = settings.REDIS_CACHE


# 系统消息相关


def set_system_message_read_info(user_id):
    """ 设置系统消息读取信息 """
    read_messages = SystemMessageReadInfo.objects.filter(user_id=user_id, status=True)
    read_message_ids = [msg.msg_id for msg in read_messages]
    r.setex(SYSTEM_MESSAGE_READ_INFO % user_id, settings.REDIS_EXPIRED_MONTH, json.dumps(read_message_ids))
    return read_message_ids


def get_system_message_read_info(user_id):
    """ 获取系统消息读取信息 """
    return json.loads(r.get(SYSTEM_MESSAGE_READ_INFO % user_id) or '[]') or set_system_message_read_info(user_id)


def set_system_message_delete_info(user_id):
    """ 设置系统消息删除信息 """
    deleted_messages = SystemMessageDeleteInfo.objects.filter(user_id=user_id, status=True)
    deleted_message_ids = [msg.msg_id for msg in deleted_messages]
    r.setex(SYSTEM_MESSAGE_DELETED_INFO % user_id, settings.REDIS_EXPIRED_MONTH, json.dumps(deleted_message_ids))
    return deleted_message_ids


def get_system_message_delete_info(user_id):
    """ 获取系统消息删除信息 """
    return json.loads(r.get(SYSTEM_MESSAGE_DELETED_INFO % user_id) or '[]') or set_system_message_delete_info(user_id)