namespace Workflow.Domain.Common;

public interface IAuditable
{
    Guid CreatedBy { get; set; }
    DateTime CreatedAt { get; set; }
    Guid UpdatedBy { get; set; }
    DateTime UpdatedAt { get; set; }
}

public interface ISoftDelete
{
    bool IsDeleted { get; set; }
}

public interface IHasOperatorIP
{
    string? OperatorIP { get; set; }
}

public interface IFullAudit : IAuditable, ISoftDelete, IHasOperatorIP;

public interface ICurrentUserContext
{
    Guid GetUserId();
    string? GetIPAddress();
}
