namespace MiGu.DB.Abstractions.Entities;

public interface IEntity<TKey>
{
    TKey Id { get; set; }
}

public interface IAuditable
{
    DateTimeOffset CreatedAt { get; set; }
    DateTimeOffset UpdatedAt { get; set; }
    string CreatedBy { get; set; }
    string UpdatedBy { get; set; }
}

public interface ISoftDeletable
{
    bool IsDeleted { get; set; }
    DateTimeOffset? DeletedAt { get; set; }
    string DeletedBy { get; set; }
}

public interface IVersioned
{
    long Version { get; set; }
}

public interface ILockable
{
    bool IsLock { get; set; }
}

public interface IRemarkable
{
    string Remark { get; set; }
}

public interface IExtendable
{
    string Extend { get; set; }
}

public interface IHistoryEntry
{
}
