using Content.Shared.Cargo.Prototypes;
using Robust.Shared.Audio;
using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
using Content.Shared._NF.Bank.Components;
using Content.Shared.Stacks;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
namespace Content.Shared._NF.Cargo.Components;
///
/// Handles sending order requests to cargo. Doesn't handle orders themselves via shuttle or telepads.
///
[RegisterComponent, NetworkedComponent, AutoGenerateComponentPause]
[Access(typeof(SharedNFCargoSystem))]
public sealed partial class NFCargoOrderConsoleComponent : Component
{
[DataField]
public SoundSpecifier ErrorSound =
new SoundPathSpecifier("/Audio/Effects/Cargo/buzz_sigh.ogg");
[DataField]
public SoundSpecifier ConfirmSound = new SoundPathSpecifier("/Audio/Effects/Cargo/ping.ogg");
///
/// The stack representing cash dispensed on withdrawals.
///
[DataField]
public ProtoId CashType = "Credit";
///
/// All of the s that are supported.
///
[DataField]
public List AllowedGroups = new() { "market" };
// Frontier: station taxes
// Accounts to receive tax value (each currently receives the entirety of the taxed value)
[DataField]
public Dictionary TaxAccounts = new();
///
/// The time at which the console will be able to play the deny sound.
///
[DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), AutoPausedField]
public TimeSpan NextDenySoundTime = TimeSpan.Zero;
///
/// The minimum time between playing the deny sound.
///
[DataField]
public TimeSpan DenySoundDelay = TimeSpan.FromSeconds(2);
}