namespace Finch.Raven;
public class InterceptorParameters
{
///
/// The current finch context
///
public IFinchContext Context { get; set; }
///
/// Raven document store
///
public IFinchStore Store { get; set; }
///
/// Access to other interceptor methods
///
public IInterceptors Interceptors { get; internal set; }
///
/// Access to operations
///
public IRavenOperations Operations { get; internal set; }
///
/// Parameters from the interceptor which ran on before the operation (only available for completed operations)
///
public Dictionary Properties { get; set; } = new();
///
/// Get a typed property
///
public TProp Property(string key) => Properties.GetValueOrDefault(key);
///
/// Get a typed property
///
public bool TryGetProperty(string key, out TProp property) => Properties.TryGetValue(key, out property);
///
/// Holds a reference to the previously existing model when an update happens (can be null)
///
public object PreviousModel { get; set; }
}