{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://api-evangelist.github.io/sally-beauty-holdings/json-schema/sally-beauty-product-schema.json",
  "title": "Sally Beauty Product",
  "description": "A beauty product in the Sally Beauty Holdings product catalog, sold through Sally Beauty Supply or BSG professional distribution channels.",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Unique product identifier (SKU)"
    },
    "name": {
      "type": "string",
      "description": "Product name"
    },
    "brand": {
      "type": "string",
      "description": "Brand name"
    },
    "description": {
      "type": "string",
      "description": "Product description"
    },
    "category": {
      "type": "string",
      "description": "Product category",
      "enum": [
        "Hair Color",
        "Hair Care",
        "Nail",
        "Skin Care",
        "Tools & Appliances",
        "Salon Furniture",
        "Salon Supplies",
        "Accessories"
      ]
    },
    "subcategory": {
      "type": "string",
      "description": "Product subcategory"
    },
    "price": {
      "type": "number",
      "description": "Retail price in USD"
    },
    "professional_price": {
      "type": "number",
      "description": "Professional (BSG) price for licensed salon professionals"
    },
    "currency": {
      "type": "string",
      "default": "USD",
      "description": "Currency code"
    },
    "upc": {
      "type": "string",
      "description": "Universal Product Code"
    },
    "images": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "format": "uri"
          },
          "alt": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": ["primary", "alternate", "swatch"]
          }
        }
      },
      "description": "Product image URLs"
    },
    "available_online": {
      "type": "boolean",
      "description": "Whether product is available for online purchase"
    },
    "available_in_store": {
      "type": "boolean",
      "description": "Whether product is available in physical stores"
    },
    "professional_only": {
      "type": "boolean",
      "description": "Whether product is restricted to licensed professionals (BSG only)"
    },
    "channel": {
      "type": "string",
      "description": "Sales channel",
      "enum": ["sally", "bsg", "both"]
    },
    "ratings": {
      "type": "object",
      "properties": {
        "average": {
          "type": "number",
          "minimum": 0,
          "maximum": 5
        },
        "count": {
          "type": "integer"
        }
      }
    }
  },
  "required": ["id", "name", "brand"],
  "additionalProperties": false
}
