openapi: 3.1.0
info:
  title: CAN-BAR API — Prezenty dla mężczyzn
  description: |
    API sklepu CAN-BAR (can-bar.pl) umożliwia przeglądanie katalogu produktów,
    wyszukiwanie zestawów prezentowych dla mężczyzn oraz sprawdzanie dostępności
    i cen. CAN-BAR specjalizuje się w unikalnych zestawach prezentowych:
    kaniistry-barki, skrzynki tematyczne, wiaderka i akcesoria.

    Alkohol NIE jest wliczony w cenę produktów.

    Darmowa wysyłka od 129 PLN. Wysyłka tego samego dnia przy zamówieniu do 13:00 (pon-pt).
  version: "1.0.0"
  contact:
    name: CAN-BAR
    url: https://can-bar.pl/kontakt/
    email: kontakt@can-bar.pl
  license:
    name: Proprietary
    url: https://can-bar.pl/regulamin/
servers:
  - url: https://can-bar.pl/wp-json/wc/store/v1
    description: WooCommerce Store API — PUBLICZNY, bez autentykacji (produkty, kategorie, koszyk)
  - url: https://can-bar.pl/wp-json/wp/v2
    description: WordPress REST API — PUBLICZNY (wpisy blogowe)
  - url: https://can-bar.pl/wp-json/wc/v3
    description: WooCommerce REST API — wymaga autentykacji (pełny dostęp)

paths:
  /products:
    get:
      operationId: listProducts
      summary: Lista produktów CAN-BAR (publiczny endpoint)
      description: |
        Zwraca publiczną listę produktów ze sklepu CAN-BAR bez autentykacji.
        Produkty to unikalne zestawy prezentowe dla mężczyzn: kaniistry-barki,
        skrzynki tematyczne dla różnych zawodów, wiaderka i akcesoria.
        Endpoint: https://can-bar.pl/wp-json/wc/store/v1/products
      parameters:
        - name: per_page
          in: query
          description: Liczba produktów na stronę (max 100)
          schema:
            type: integer
            default: 10
        - name: page
          in: query
          description: Numer strony
          schema:
            type: integer
            default: 1
        - name: search
          in: query
          description: Wyszukiwanie produktów (np. "elektryk", "kanister", "skrzynka")
          schema:
            type: string
        - name: category
          in: query
          description: Slug kategorii (np. "kanister-barek", "skrzynki-na-alkohol")
          schema:
            type: string
        - name: min_price
          in: query
          description: Minimalna cena w PLN
          schema:
            type: string
        - name: max_price
          in: query
          description: Maksymalna cena w PLN
          schema:
            type: string
        - name: orderby
          in: query
          description: Sortowanie wyników
          schema:
            type: string
            enum: [popularity, rating, date, price, price-desc]
      responses:
        "200":
          description: Lista produktów
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Product"

  /products/categories:
    get:
      operationId: listCategories
      summary: Kategorie produktów CAN-BAR (publiczny endpoint)
      description: |
        Zwraca publiczną listę kategorii produktów.
        Endpoint: https://can-bar.pl/wp-json/wc/store/v1/products/categories
      responses:
        "200":
          description: Lista kategorii
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Category"

  /cart:
    get:
      operationId: getCart
      summary: Koszyk (publiczny endpoint)
      description: Zwraca zawartość koszyka. Endpoint dostępny publicznie przez Store API.
      responses:
        "200":
          description: Zawartość koszyka

  /posts:
    get:
      operationId: listBlogPosts
      summary: Artykuły blogowe CAN-BAR (publiczny endpoint)
      description: |
        Artykuły z bloga CAN-BAR, w tym poradniki prezentowe i opisy produktów.
        Endpoint: https://can-bar.pl/wp-json/wp/v2/posts
      parameters:
        - name: per_page
          in: query
          schema:
            type: integer
            default: 10
        - name: search
          in: query
          schema:
            type: string
      responses:
        "200":
          description: Lista wpisów blogowych

components:
  schemas:
    Product:
      type: object
      properties:
        id:
          type: integer
          description: Unikalny identyfikator produktu
        name:
          type: string
          description: Nazwa produktu
          example: "Kanister Barek V.I.P+"
        slug:
          type: string
        permalink:
          type: string
          description: Pełny URL produktu
        price:
          type: string
          description: Cena w PLN
          example: "369.99"
        regular_price:
          type: string
        sale_price:
          type: string
        short_description:
          type: string
          description: Krótki opis produktu
        description:
          type: string
          description: Pełny opis produktu
        categories:
          type: array
          items:
            $ref: "#/components/schemas/Category"
        images:
          type: array
          items:
            type: object
            properties:
              src:
                type: string
              alt:
                type: string
        stock_status:
          type: string
          enum: [instock, outofstock, onbackorder]
        average_rating:
          type: string
        rating_count:
          type: integer

    Category:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
          example: "Kanister Barek"
        slug:
          type: string
        description:
          type: string
        count:
          type: integer
          description: Liczba produktów w kategorii
        link:
          type: string

  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: WooCommerce Consumer Key i Consumer Secret

# Katalog statyczny (bez autentykacji)
# Główne kategorie produktów CAN-BAR:
#
# KANISTER BAREK — 20L kanistr wojskowy jako minibarek
#   URL: https://can-bar.pl/sklep/kanister-barek/
#   Ceny: 289.99 - 369.99 PLN
#   Warianty: Standard, Glass+, V.I.P+
#
# SKRZYNKI NA ALKOHOL — drewniane skrzynki tematyczne
#   URL: https://can-bar.pl/sklep/skrzynki-na-alkohol/
#   Ceny: od 111.99 PLN
#   Dostępne dla: elektryk, hydraulik, spawacz, strażak, policjant,
#                 żołnierz, mechanik, rybak, motocyklista, ogrodnik
#
# MASZLITRA — skrzynki w stylu walizki narzędziowej
#   URL: https://can-bar.pl/sklep/maszlitra/
#
# WIADRO MAJSTRA — zestawy w wiaderku
#   URL: https://can-bar.pl/sklep/wiadro-majstra/
#
# Dostawa: darmowa od 129 PLN, tego samego dnia przy zamówieniu do 13:00 pon-pt
