using System; using InABox.Core; namespace Comal.Classes { public abstract class EntityKanban : Entity, IRemotable, IPersistent, ILicense where TEntity : Entity where TLink : IEntityLink, new() { [EntityRelationship(DeleteAction.Cascade)] public TLink Entity { get; set; } [EntityRelationship(DeleteAction.Cascade)] public KanbanLink Kanban { get; set; } protected override void Init() { base.Init(); Kanban = new KanbanLink(); Entity = new TLink(); } } public class RequisitionKanban : EntityKanban { } public class SetoutKanban : EntityKanban { } public class DeliveryKanban : EntityKanban { } public class PurchaseOrderKanban : EntityKanban { } public class ManufacturingPacketKanban : EntityKanban { } public class JobRequisitionKanban : EntityKanban { } [Obsolete("Replaced with EntityKanban", false)] [UserTracking(typeof(Kanban))] public class KanbanReference : Entity, IPersistent, IRemotable, ILicense { [EntityRelationship(DeleteAction.Cascade)] public KanbanLink Kanban { get; set; } public Guid KanbanID { get; set; } public string LinkType { get; set; } public Guid LinkID { get; set; } public string LinkProperty { get; set; } public PackableStringDictionary Data { get; set; } protected override void Init() { base.Init(); Data = new PackableStringDictionary(); Kanban = new KanbanLink(); } } }