using Content.Shared.Humanoid;
using Robust.Shared.Enums;
using Robust.Shared.Serialization;
namespace Content.Shared._CD.Records;
///
/// Contains the full records information, not just stuff that is in the database.
///
[Serializable, NetSerializable]
public sealed class FullCharacterRecords(
PlayerProvidedCharacterRecords pRecords,
uint? stationRecordsKey,
string name,
int age,
string jobTitle,
string jobIcon,
string species,
Gender gender,
Sex sex,
string? fingerprint,
string? dna,
EntityUid? owner = null)
{
[ViewVariables]
public PlayerProvidedCharacterRecords PRecords = pRecords;
///
/// Key for the equivalent entry in the station records
///
/// Sadly, this has to be a uint because StationRecordsKey is not serializable
///
[ViewVariables]
public uint? StationRecordsKey = stationRecordsKey;
///
/// Name tied to this record.
///
[ViewVariables]
public string Name = name;
///
/// Age of the person that this record represents.
///
[ViewVariables]
public int Age = age;
///
/// Job title tied to this record.
///
[ViewVariables]
public string JobTitle = jobTitle;
///
/// Job icon tied to this record.
///
[ViewVariables]
public string JobIcon = jobIcon;
///
/// Species tied to this record.
///
[ViewVariables]
public string Species = species;
///
/// Gender identity tied to this record.
///
[ViewVariables]
public Gender Gender = gender;
///
/// Sex identity tied to this record.
///
[ViewVariables]
public Sex Sex = sex;
[ViewVariables]
public string? Fingerprint = fingerprint;
///
/// DNA of the person.
///
[ViewVariables]
// ReSharper disable once InconsistentNaming
public string? DNA = dna;
///
/// The entity that owns this record. Should always nonnull inside CharacterRecordsComponent. This field should not be accessed client side.
///
[ViewVariables]
[NonSerialized]
public EntityUid? Owner = owner;
}