using MongoDB.Bson.Serialization.Attributes;

namespace InventoryApi.Models;

[BsonIgnoreExtraElements]
public class ItemDefinition
{
    [BsonId]
    [BsonElement("itemKey")]
    public string ItemKey { get; set; } = string.Empty;

    [BsonElement("displayName")]
    public string DisplayName { get; set; } = string.Empty;

    [BsonElement("stackable")]
    public bool Stackable { get; set; }

    [BsonElement("maxStackSize")]
    public int MaxStackSize { get; set; } = 1;

    [BsonElement("category")]
    public string Category { get; set; } = "misc";

    [BsonElement("equipSlot")]
    [BsonIgnoreIfNull]
    public string? EquipSlot { get; set; }

    [BsonElement("createdUtc")]
    public DateTime CreatedUtc { get; set; } = DateTime.UtcNow;

    [BsonElement("updatedUtc")]
    public DateTime UpdatedUtc { get; set; } = DateTime.UtcNow;
}
