{
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "$id": "https://krimradar.se/data/produkter.schema.json",
 "title": "Krimradar – hemlarm, smarta larm och kameror med priser",
 "description": "Öppet, bara läsande flöde med alla produkter i Krimradars jämförelse. Varje post har källa (kalla) och kontrolldatum (kontrollerad). null betyder att uppgiften inte är bekräftad i källan. Inga personuppgifter, inga betyg.",
 "type": "object",
 "required": [
  "sajt",
  "url",
  "utgivare",
  "genererad",
  "antal",
  "sortering",
  "produkter"
 ],
 "properties": {
  "$schema": {
   "type": "string"
  },
  "sajt": {
   "type": "string"
  },
  "url": {
   "type": "string"
  },
  "utgivare": {
   "type": "string",
   "description": "Bolaget bakom sajten med organisationsnummer"
  },
  "genererad": {
   "type": "string",
   "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
  },
  "antal": {
   "type": "integer"
  },
  "sortering": {
   "type": "string",
   "description": "Hur listan är sorterad (aldrig efter ersättning)"
  },
  "annons_forklaring": {
   "type": "string"
  },
  "pris_forklaring": {
   "type": "string"
  },
  "produkter": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "namn",
     "id",
     "kategori",
     "pris",
     "valuta",
     "pris_typ",
     "url",
     "kop_url",
     "kontrollerad",
     "kalla",
     "annons"
    ],
    "properties": {
     "namn": {
      "type": "string"
     },
     "id": {
      "type": "string",
      "pattern": "^[a-z0-9-]+$"
     },
     "tillverkare": {
      "type": [
       "string",
       "null"
      ],
      "description": "Bolaget bakom produkten enligt källan"
     },
     "kategori": {
      "type": "string",
      "enum": [
       "larmbolag",
       "smarta-larm",
       "kameror"
      ]
     },
     "kategori_namn": {
      "type": "string"
     },
     "beskrivning": {
      "type": [
       "string",
       "null"
      ]
     },
     "pris": {
      "type": [
       "number",
       "null"
      ],
      "description": "Lägsta pris i SEK inkl. moms enligt pris_typ; null = inte bekräftat"
     },
     "valuta": {
      "type": "string",
      "enum": [
       "SEK"
      ]
     },
     "pris_typ": {
      "type": "string",
      "enum": [
       "manad",
       "engang"
      ],
      "description": "manad = månadsavgift, engang = engångspris"
     },
     "prisenhet": {
      "type": [
       "string",
       "null"
      ]
     },
     "pris_text": {
      "type": [
       "string",
       "null"
      ],
      "description": "Förklaring av priset enligt källan"
     },
     "startavgift": {
      "type": [
       "number",
       "null"
      ],
      "description": "Start-/installationsavgift i SEK; 0 = uttryckligen gratis"
     },
     "abonnemang_fran_kr_man": {
      "type": [
       "number",
       "null"
      ],
      "description": "Lägsta valfria abonnemang kr/mån för engångsprodukter"
     },
     "bindningstid_manader": {
      "type": [
       "integer",
       "null"
      ]
     },
     "funktioner": {
      "type": "object",
      "properties": {
       "larmcentral": {
        "type": [
         "boolean",
         "null"
        ]
       },
       "vaktutryckning": {
        "type": [
         "boolean",
         "null"
        ]
       },
       "kamera": {
        "type": [
         "boolean",
         "null"
        ]
       },
       "app": {
        "type": [
         "boolean",
         "null"
        ]
       },
       "brandvarnare_ingar": {
        "type": [
         "boolean",
         "null"
        ]
       },
       "sjalvinstallation": {
        "type": [
         "boolean",
         "null"
        ]
       },
       "ingen_bindningstid": {
        "type": [
         "boolean",
         "null"
        ]
       }
      }
     },
     "butik": {
      "type": [
       "string",
       "null"
      ],
      "description": "Namngiven återförsäljare som länken leder till"
     },
     "url": {
      "type": "string",
      "pattern": "^https://krimradar\\.se/produkt/"
     },
     "kop_url": {
      "type": "string",
      "pattern": "^https://"
     },
     "kontrollerad": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
     },
     "kalla": {
      "type": "array",
      "items": {
       "type": "string",
       "pattern": "^https://"
      }
     },
     "annons": {
      "type": "boolean",
      "description": "true = länken på sajten är en annonslänk som kan ge ersättning"
     }
    }
   }
  }
 }
}
