using System.Collections.Generic; using static CMS_CORE_Library.Models.DataStructures; namespace CMS_CORE_Library.Models { public class SiemensToolModel { public int Id; public string FamilyName; public int ChildId; public SIEMENS_LIFE_TYPE LifeType; public int MagazinePositionType; public int ToolType; public int LeftSize; public int RightSize; public ROTATION Rotation; public bool Cooling1; public bool Cooling2; public bool IsEnabled; public bool IsActive; public bool InFixedPlace; public bool IsInhibited; public bool IsMeasured; public bool InChangeTool; public bool IsInUse; public bool PreAlarm; public double MaxSpeed; public int MagazineId; public int PositionId; public int MultitoolId; public List EdgesData; // Custom CMS fields public int Load; public int Gamma; public int MaxLoadPctAutoload; public int MinLoadPctAutoload; public int ToolTypeCode; public SiemensToolModel() { EdgesData = new List(); } } public class EdgeModel { public int Id; public double ResidualLife; public double NominalLife; public double PreAlmLife; public Dictionary EdgeAdditionalParams; public EdgeModel() { EdgeAdditionalParams = new Dictionary(); } } public class ShankModel { public int Id; public string Name; public bool IsEnabled; public bool IsInhibited; public bool InChangeTool; public bool InFixedPlace; public bool InUse; public int LeftSize; public int RightSize; public int MagazinePositionType; public int MaxChilds; public int MagazineId; public int PositionId; public List ChildsTools; public ShankModel() { ChildsTools = new List(); } } public class ShankChildModel { public int Id; public int MultitoolId; public string FamilyName; public int ToolType; } public class FamilyModel { public string Name; public List ChildTools; public FamilyModel() { ChildTools = new List(); } } public class FamilyChildModel { public int Id; public int ChildId; public int ToolType; } public class PositionModel { public int PositionId; public int MagazineId; public POSITION_TYPE PhysicalType; public int Type; public bool Disabled; public bool Occupied; } public class EdgeConfigModel { public string Name; public string Path; public int Number; } public class MountedToolModel { public int PositionId; public int MagazineId; public int ToolId; public SiemensToolModel ChildTool; public ShankModel ChildShank; } public class NewToolInMagazineModel { public int PositionId; public int ToolId; } public class MagazineActionModel { public MAGAZINE_ACTIONS Action; public ushort OriginMagazine; public ushort OriginPosition; public ushort DestinationMagazine; public ushort DestinationPosition; public MagazineActionToolModel Tool; public MagazineActionToolModel SecondTool; } public class MagazineActionToolModel { public int Id; public int ToolType; public string Name; public bool IsMultitool; } ///////////////// Tools Configuration public class FieldsConfiguration { public string Name; public string Type; public string Category; public string SubCategory; public bool ReadOnly; public bool IsNeeded; public Dictionary SelectValues; public int MinValue; public int MaxValue; public FieldsConfiguration() { ReadOnly = false; IsNeeded = false; MinValue = 0; } } public class FamiliesConfiguration { public List FamilyConfiguration; public List FamilyReadOnlyConfiguration; public List ToolsConfiguration; } public class ShanksConfiguration { public List ShankConfiguration; public List ToolsConfiguration; } public class EdgesConfiguration { public List EdgeConfiguration; public Dictionary> EdgesAdditionalParamsConfiguration; } public class NcMagazineConfigModel { public byte Id; public NC_MAGAZINE_TYPE Type; public int MaxPositions; } public class SiemensMagazineConfigModel { public short Id; public SIEMENS_MAGAZINE_TYPE Type; public int MaxPositions; public string Name; public bool LoadingIsActive; public int LoadPosition; public bool AssistedToolingIsActive; public bool EditableTooling; public bool VisibleMagazine; } public class ToolTableConfiguration { public int MaxTools; public int MaxEdgesPerTools; public int MaxToolsPerFamily; public int MaxMultitools; public int MaxToolsPerMultitools; public int MaxOffsets; public bool MultitoolOptionActive; public bool FamilyOptionActive; public bool SelfAdaptivePathOptionActive; public bool MagPositionOptionActive; public bool OffsetOptionActive; public bool RadiusMetricType; public bool LifeOption; public bool SiemensBallufOption; public List Magazines; public List ToolsConfiguration; public FamiliesConfiguration FamiliesConfiguration; public ShanksConfiguration ShanksConfiguration; public List MagazinePosConfiguration; public EdgesConfiguration EdgesConfiguration; } }