{
    "openapi": "3.0.3",
    "info": {
        "title": "Silah Open API",
        "version": "1.0",
        "description": "واجهة صِلَة العامة: Bearer sk_… من الإعدادات → مفاتيح API. الردود موحدة {success,data,error,meta}. حد المعدل 120/دقيقة لكل مفتاح. النطاقات: read, write."
    },
    "servers": [
        {
            "url": "https://smart-pos.co/sela"
        }
    ],
    "components": {
        "securitySchemes": {
            "bearer": {
                "type": "http",
                "scheme": "bearer"
            }
        }
    },
    "security": [
        {
            "bearer": []
        }
    ],
    "paths": {
        "/api/v1/products": {
            "get": {
                "summary": "الأصناف مع المخزون والباركود",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "minimum": 1
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK — {success, data, error, meta}"
                    }
                },
                "x-scope": "read"
            },
            "post": {
                "summary": "إنشاء صنف",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "name",
                                    "price"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string"
                                    },
                                    "price": {
                                        "type": "number"
                                    },
                                    "sku": {
                                        "type": "string"
                                    },
                                    "barcode": {
                                        "type": "string"
                                    },
                                    "cost": {
                                        "type": "number"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Created"
                    }
                },
                "x-scope": "write"
            }
        },
        "/api/v1/stock": {
            "get": {
                "summary": "أرصدة المخزون",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "minimum": 1
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK — {success, data, error, meta}"
                    }
                },
                "x-scope": "read"
            }
        },
        "/api/v1/invoices": {
            "get": {
                "summary": "الفواتير",
                "parameters": [
                    {
                        "name": "from",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "to",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "minimum": 1
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK — {success, data, error, meta}"
                    }
                },
                "x-scope": "read"
            }
        },
        "/api/v1/orders": {
            "get": {
                "summary": "الطلبات الإلكترونية",
                "description": "total = subtotal + tax − discount − loyalty_discount + service_fee + delivery_fee؛ الرسمان (خدمات/توصيل) ليسا إيراد المتجر.",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "minimum": 1
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK — {success, data, error, meta}"
                    }
                },
                "x-scope": "read"
            }
        },
        "/api/v1/customers": {
            "get": {
                "summary": "العملاء",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "minimum": 1
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK — {success, data, error, meta}"
                    }
                },
                "x-scope": "read"
            }
        }
    },
    "x-webhooks": {
        "description": "POST JSON {event, tenant_id, occurred_at, data} مع رؤوس X-Silah-Event وX-Silah-Delivery وX-Silah-Signature (sha256=HMAC-SHA256(body, secret)). أعد 2xx خلال 8 ثوانٍ؛ غير ذلك يُعاد الإرسال 5 مرات بتباطؤ.",
        "events": [
            "invoice.completed",
            "order.created",
            "order.updated",
            "payment.received",
            "stock.low",
            "ping"
        ]
    }
}