48 lines
2.2 KiB
C#
48 lines
2.2 KiB
C#
namespace BlueLaminate.Scraper.CsFloat;
|
|
|
|
/// <summary>
|
|
/// A single active CSFloat listing, flattened from the API's listing+item shape
|
|
/// to the fields this project cares about. Prices arrive from CSFloat as integer
|
|
/// cents and are converted to whole-dollar <see cref="decimal"/> here so callers
|
|
/// never deal in cents. This is a read model for the official, documented
|
|
/// <c>GET /api/v1/listings</c> endpoint — active listings only, not sales.
|
|
/// </summary>
|
|
/// <param name="ListingId">CSFloat listing id (stable while the listing is live).</param>
|
|
/// <param name="CreatedAt">When the listing was created.</param>
|
|
/// <param name="Type">"buy_now" or "auction".</param>
|
|
/// <param name="Price">Asking price in USD (converted from cents).</param>
|
|
/// <param name="MarketHashName">Canonical item name, e.g. "M4A4 | Cyber Security (Field-Tested)".</param>
|
|
/// <param name="DefIndex">Weapon definition index (maps to catalog weapon_id).</param>
|
|
/// <param name="PaintIndex">Paint index (maps to catalog paint_index).</param>
|
|
/// <param name="PaintSeed">Pattern seed.</param>
|
|
/// <param name="FloatValue">Exact float/wear value.</param>
|
|
/// <param name="WearName">Wear bucket name, e.g. "Field-Tested".</param>
|
|
/// <param name="IsStatTrak">StatTrak™ variant.</param>
|
|
/// <param name="IsSouvenir">Souvenir variant.</param>
|
|
/// <param name="StickerCount">Number of stickers applied.</param>
|
|
/// <param name="SellerSteamId">Seller's SteamID64.</param>
|
|
/// <param name="InspectLink">In-game inspect link.</param>
|
|
/// <param name="AssetId">
|
|
/// Steam asset id of this specific copy. Changes when the item trades, so it is
|
|
/// NOT a stable item identity — but two live listings sharing a fingerprint
|
|
/// (skin+float+seed+ST/souvenir) yet showing different asset ids are the
|
|
/// signature of a duplicated ("duped") item.
|
|
/// </param>
|
|
public sealed record CsFloatListing(
|
|
string ListingId,
|
|
DateTimeOffset CreatedAt,
|
|
string Type,
|
|
decimal Price,
|
|
string MarketHashName,
|
|
int DefIndex,
|
|
int PaintIndex,
|
|
int PaintSeed,
|
|
decimal FloatValue,
|
|
string? WearName,
|
|
bool IsStatTrak,
|
|
bool IsSouvenir,
|
|
int StickerCount,
|
|
string? SellerSteamId,
|
|
string? InspectLink,
|
|
string? AssetId);
|