using System;
using InABox.Core;

namespace InABox.Avalonia
{
    public interface IShell
    {
        Guid ID { get; }
        ICoreRepository Parent { get; }

        bool IsSelected { get; set; }

        bool IsChanged();
        void Save(string auditmessage);
        void Cancel();

        bool Match(string? text);
    }

    public interface IShell<out TEntity>
        where TEntity : Entity, IRemotable, IPersistent 
    {
        TEntity Entity { get; }
    }
}