using System.Diagnostics.CodeAnalysis;
using System.Reflection;

namespace AyCode.Core.Serializers;

/// <summary>
/// Base class for deserializer type metadata.
/// Extends TypeMetadataBase for deserializer-specific functionality.
/// Used by both JSON and Binary deserializers.
/// Note: IId detection (IsIId, IdType, IdGetter) is now in TypeMetadataBase for use by both serializers and deserializers.
/// </summary>
public abstract class DeserializeTypeMetadataBase : TypeMetadataBase
{
    protected DeserializeTypeMetadataBase(
        [DynamicallyAccessedMembers(RequiredMembers)] Type type,
        Func<PropertyInfo, bool> ignorePropertyFilter)
        : base(type, ignorePropertyFilter)
    {
        // IId info is now initialized in TypeMetadataBase constructor
    }
}
