﻿using JLGames.RocketDriver.Games.RpgMaterial.Material;

namespace JLGames.RocketDriver.Games.RpgMaterial.User
{
    public interface IUserMaterialValid : IUserMaterial
    {
        /// <summary>
        /// Verify if enabled
        /// 验证是否启用
        /// </summary>
        bool ValidEnabled { get; }

        /// <summary>
        /// Valid Type
        /// 验证类型
        /// </summary>
        MaterialValidType ValidType { get; }

        /// <summary>
        /// Gain timestamp
        /// 获得时间戳
        /// </summary>
        long Gainstamp { get; }

        /// <summary>
        /// Check if it is valid
        /// 检查是否有效
        /// </summary>
        /// <param name="ticks"></param>
        /// <returns></returns>
        bool CheckValid(long ticks);
    }

    public interface IUserMaterialValid<TM, TCfg> : IUserMaterialValid, IUserMaterial<TM, TCfg>
        where TM : IMaterialValid<TCfg>
    {
    }
}