using IRaCIS.Core.Infrastructure.Encryption;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Microsoft.EntityFrameworkCore.ValueGeneration;
namespace IRaCIS.Core.Infra.EFCore;
/// 
/// 某列保留前面几位,后续加密
/// 
public class PartialEncryptionConverter : ValueConverter
{
    private readonly int _unencryptedPrefixLength;
    public PartialEncryptionConverter(int unencryptedPrefixLength)
        : base(
            plainText => AesEncryption.EncryptPartial(plainText, unencryptedPrefixLength),
            encryptedText => AesEncryption.DecryptPartial(encryptedText, unencryptedPrefixLength))
    {
        _unencryptedPrefixLength = unencryptedPrefixLength;
    }
}