using Content.Shared.Security; using Content.Shared.StationRecords; using Robust.Shared.Serialization; namespace Content.Shared._CD.Records; [Serializable, NetSerializable] public enum CharacterRecordConsoleKey : byte { Key } [Serializable, NetSerializable] public enum RecordConsoleType : byte { Security, Medical, Employment, Generic, // DeltaV - Syndicate Record Tablet /// /// Admin console has the functionality of all other types and has some additional admin related functionality /// Admin } [Serializable, NetSerializable] public sealed class CharacterRecordConsoleState : BoundUserInterfaceState { [Serializable, NetSerializable] public struct CharacterInfo { public string CharacterDisplayName; public uint? StationRecordKey; } public RecordConsoleType ConsoleType { get; set; } /// /// Character selected in the console /// public uint? SelectedIndex { get; set; } = null; /// /// List of names+station record keys to display in the listing /// public Dictionary? CharacterList { get; set; } /// /// The contents of the selected record /// public FullCharacterRecords? SelectedRecord { get; set; } = null; public StationRecordsFilter? Filter { get; set; } = null; /// /// Security status of the selected record /// public (SecurityStatus, string?)? SelectedSecurityStatus = null; } [Serializable, NetSerializable] public sealed class CharacterRecordsConsoleFilterMsg : BoundUserInterfaceMessage { public readonly StationRecordsFilter? Filter; public CharacterRecordsConsoleFilterMsg(StationRecordsFilter? filter) { Filter = filter; } } [Serializable, NetSerializable] public sealed class CharacterRecordConsoleSelectMsg : BoundUserInterfaceMessage { public readonly uint? CharacterRecordKey; public CharacterRecordConsoleSelectMsg(uint? characterRecordKey) { CharacterRecordKey = characterRecordKey; } }