using Content.Shared.Cargo;
using Content.Shared.Cargo.Prototypes;
using Robust.Shared.Prototypes;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
namespace Content.Server.Cargo.Components;
///
/// Stores all active cargo bounties for a particular station.
///
[RegisterComponent]
public sealed partial class StationCargoBountyDatabaseComponent : Component
{
///
/// Maximum amount of bounties a station can have.
///
[DataField]
public int MaxBounties = 6;
///
/// A list of all the bounties currently active for a station.
///
[DataField]
public List Bounties = new();
///
/// A list of all the bounties that have been completed or
/// skipped for a station.
///
[DataField]
public List History = new();
///
/// Used to determine unique order IDs
///
[DataField]
public int TotalBounties;
///
/// A list of bounty IDs that have been checked this tick.
/// Used to prevent multiplying bounty prices.
///
[DataField]
public HashSet CheckedBounties = new();
///
/// The group that bounties are pulled from.
///
[DataField]
public ProtoId Group = "StationBounty";
///
/// The time at which players will be able to skip the next bounty.
///
[DataField(customTypeSerializer: typeof(TimeOffsetSerializer))]
public TimeSpan NextSkipTime = TimeSpan.Zero;
///
/// The time between skipping bounties.
///
[DataField]
public TimeSpan SkipDelay = TimeSpan.FromMinutes(15);
}