add csfloat api usage
This commit is contained in:
@@ -1,20 +1,50 @@
|
||||
namespace BlueLaminate.EFCore.Entities;
|
||||
|
||||
/// <summary>
|
||||
/// One physical CS2 item, identified by its fingerprint
|
||||
/// (Skin + FloatValue + PaintSeed + StatTrak + Souvenir) rather than its Steam
|
||||
/// asset id, which changes on every trade. Decoupled from Steam inventories on
|
||||
/// purpose: an instance exists from market observation alone, and the optional
|
||||
/// <see cref="InventoryItem"/> bridge ties it to a <c>SteamUser</c> only once we
|
||||
/// crawl inventories.
|
||||
///
|
||||
/// Duping note: a duplicated item is a byte-for-byte copy with an identical
|
||||
/// fingerprint, so a fingerprint is NOT guaranteed unique to one physical item.
|
||||
/// We treat the fingerprint as the item, and flag <see cref="SuspectedDupe"/>
|
||||
/// when the same fingerprint is seen live under two or more different asset ids
|
||||
/// at once (see the sweep's dupe detection).
|
||||
/// </summary>
|
||||
public class SkinInstance
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public int SkinId { get; set; }
|
||||
public Skin Skin { get; set; } = null!;
|
||||
public int ConditionId { get; set; }
|
||||
public SkinCondition Condition { get; set; } = null!;
|
||||
|
||||
// FloatValue + PaintSeed form a stable fingerprint across trades; the Steam
|
||||
// asset_id changes on every trade but these do not.
|
||||
// Nullable: market observation gives a float but not a derived wear bucket.
|
||||
// Condition can be backfilled later from the float without blocking ingest.
|
||||
public int? ConditionId { get; set; }
|
||||
public SkinCondition? Condition { get; set; }
|
||||
|
||||
// The fingerprint. FloatValue is stored at full precision (see config) so
|
||||
// that exact-match dupe detection isn't fooled by rounding.
|
||||
public decimal FloatValue { get; set; }
|
||||
public string PaintSeed { get; set; } = null!;
|
||||
public bool StatTrak { get; set; }
|
||||
public bool Souvenir { get; set; }
|
||||
public DateTimeOffset FirstSeenAt { get; set; }
|
||||
public DateTimeOffset LastSeenAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// True once this fingerprint was observed live under 2+ distinct asset ids
|
||||
/// simultaneously — the signature of duplication.
|
||||
/// </summary>
|
||||
public bool SuspectedDupe { get; set; }
|
||||
|
||||
/// <summary>When the dupe condition was first detected. Null until then.</summary>
|
||||
public DateTimeOffset? DupeFirstSeenAt { get; set; }
|
||||
|
||||
/// <summary>Every market listing observed for this physical item over time.</summary>
|
||||
public ICollection<Listing> Listings { get; set; } = new List<Listing>();
|
||||
|
||||
public ICollection<InventoryItem> InventoryItems { get; set; } = new List<InventoryItem>();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user