using JetBrains.Annotations;
using Robust.Shared.Serialization;
namespace Content.Shared.Store;
///
/// Used to define a complicated condition that requires C#
///
[ImplicitDataDefinitionForInheritors]
[MeansImplicitUse]
public abstract partial class ListingCondition
{
///
/// Determines whether or not a certain entity can purchase a listing.
///
/// Whether or not the listing can be purchased
public abstract bool Condition(ListingConditionArgs args);
}
/// Either the account owner, user, or an inanimate object (e.g., surplus bundle)
/// The listing itself
/// An entitymanager for sane coding
public readonly record struct ListingConditionArgs(EntityUid Buyer, EntityUid? StoreEntity, ListingData Listing, IEntityManager EntityManager);