using System.Collections.Generic;
using MessagePack;

#if GameClient
using GameFramework;
#endif

namespace GameMessage
{
    [Message(MessageCode.ActivityPropDataGetRequest)]
    [MessagePackObject]
    public class ActivityPropDataGetRequest : MessageData
    {
        /// <summary>
        /// 0 表示 获取所有道具数据 大于0 表示获取指定道具数据
        /// </summary>
        [Key(0)]
        public int PropType;

#if GameClient
        public static ActivityPropDataGetRequest Create(int propType)
        {
            ActivityPropDataGetRequest request = ReferencePool.Acquire<ActivityPropDataGetRequest>();
            request.PropType = propType;
            return request;
        }
#endif
    }
    
    [Message(MessageCode.ActivityPropDataGetResponse)]
    [MessagePackObject]
    public class ActivityPropDataGetResponse : MessageData
    {
        /// <summary>
        /// 0 表示 获取所有道具数据 大于0 表示获取指定道具数据
        /// </summary>
        [Key(0)]
        public int PropType;

        /// <summary>
        /// 道具数据
        /// </summary>
        [Key(1)]
        public List<ActivityPropData> Datas;
    }

    [Message(MessageCode.ActivityPropDataChange)]
    [MessagePackObject]
    public class ActivityPropDataChangeMessage : MessageData
    {
        /// <summary>
        /// 道具数据
        /// </summary>
        [Key(0)]
        public List<ActivityPropData> ChangeDatas;
    }
}