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;
}
}