189 lines
4.6 KiB
JSON
189 lines
4.6 KiB
JSON
|
|
{
|
||
|
|
"openapi": "3.0.0",
|
||
|
|
"info": {
|
||
|
|
"title": "BOC API",
|
||
|
|
"description": "Business Operations Center API - LandveX",
|
||
|
|
"version": "1.0.0",
|
||
|
|
"contact": {
|
||
|
|
"name": "LandveX Support",
|
||
|
|
"email": "support@landvex.com"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"servers": [
|
||
|
|
{
|
||
|
|
"url": "http://localhost:9096",
|
||
|
|
"description": "Local development"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"security": [
|
||
|
|
{
|
||
|
|
"bearerAuth": []
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"paths": {
|
||
|
|
"/health": {
|
||
|
|
"get": {
|
||
|
|
"summary": "Health check",
|
||
|
|
"tags": ["System"],
|
||
|
|
"responses": {
|
||
|
|
"200": {
|
||
|
|
"description": "Service is healthy",
|
||
|
|
"content": {
|
||
|
|
"application/json": {
|
||
|
|
"schema": {
|
||
|
|
"type": "object",
|
||
|
|
"properties": {
|
||
|
|
"ok": { "type": "boolean" },
|
||
|
|
"service": { "type": "string" },
|
||
|
|
"version": { "type": "string" }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"/api/v1/auth/me": {
|
||
|
|
"get": {
|
||
|
|
"summary": "Get current user",
|
||
|
|
"tags": ["Auth"],
|
||
|
|
"security": [{"bearerAuth": []}],
|
||
|
|
"responses": {
|
||
|
|
"200": {
|
||
|
|
"description": "User data",
|
||
|
|
"content": {
|
||
|
|
"application/json": {
|
||
|
|
"schema": {
|
||
|
|
"type": "object",
|
||
|
|
"properties": {
|
||
|
|
"user": {
|
||
|
|
"type": "object",
|
||
|
|
"properties": {
|
||
|
|
"sub": { "type": "string" },
|
||
|
|
"email": { "type": "string" },
|
||
|
|
"roles": { "type": "array", "items": { "type": "string" } }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"401": {
|
||
|
|
"description": "Unauthorized - Valid Bearer token required"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"/api/v1/hr/employees": {
|
||
|
|
"get": {
|
||
|
|
"summary": "List employees",
|
||
|
|
"tags": ["HR"],
|
||
|
|
"security": [{"bearerAuth": []}],
|
||
|
|
"responses": {
|
||
|
|
"200": { "description": "List of employees" }
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"post": {
|
||
|
|
"summary": "Create employee",
|
||
|
|
"tags": ["HR"],
|
||
|
|
"security": [{"bearerAuth": []}],
|
||
|
|
"responses": {
|
||
|
|
"201": { "description": "Employee created" }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"/api/v1/crm/customers": {
|
||
|
|
"get": {
|
||
|
|
"summary": "List customers",
|
||
|
|
"tags": ["CRM"],
|
||
|
|
"security": [{"bearerAuth": []}],
|
||
|
|
"responses": {
|
||
|
|
"200": { "description": "List of customers" }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"/api/v1/sales/deals": {
|
||
|
|
"get": {
|
||
|
|
"summary": "List deals",
|
||
|
|
"tags": ["Sales"],
|
||
|
|
"security": [{"bearerAuth": []}],
|
||
|
|
"responses": {
|
||
|
|
"200": { "description": "List of deals" }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"/api/v1/legal/contracts": {
|
||
|
|
"get": {
|
||
|
|
"summary": "List contracts",
|
||
|
|
"tags": ["Legal"],
|
||
|
|
"security": [{"bearerAuth": []}],
|
||
|
|
"responses": {
|
||
|
|
"200": { "description": "List of contracts" }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"/api/v1/marketing/campaigns": {
|
||
|
|
"get": {
|
||
|
|
"summary": "List campaigns",
|
||
|
|
"tags": ["Marketing"],
|
||
|
|
"security": [{"bearerAuth": []}],
|
||
|
|
"responses": {
|
||
|
|
"200": { "description": "List of campaigns" }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"/api/v1/support/tickets": {
|
||
|
|
"get": {
|
||
|
|
"summary": "List tickets",
|
||
|
|
"tags": ["Support"],
|
||
|
|
"security": [{"bearerAuth": []}],
|
||
|
|
"responses": {
|
||
|
|
"200": { "description": "List of tickets" }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"/api/v1/analytics/dashboard": {
|
||
|
|
"get": {
|
||
|
|
"summary": "Get dashboard data",
|
||
|
|
"tags": ["Analytics"],
|
||
|
|
"security": [{"bearerAuth": []}],
|
||
|
|
"responses": {
|
||
|
|
"200": { "description": "Dashboard data" }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"/api/v1/finance/balance": {
|
||
|
|
"get": {
|
||
|
|
"summary": "Get balance sheet",
|
||
|
|
"tags": ["Finance"],
|
||
|
|
"security": [{"bearerAuth": []}],
|
||
|
|
"responses": {
|
||
|
|
"200": { "description": "Balance sheet data" }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"/api/v1/briefing/daily": {
|
||
|
|
"get": {
|
||
|
|
"summary": "Get daily briefing",
|
||
|
|
"tags": ["Briefing"],
|
||
|
|
"security": [{"bearerAuth": []}],
|
||
|
|
"responses": {
|
||
|
|
"200": { "description": "Daily briefing data" }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"components": {
|
||
|
|
"securitySchemes": {
|
||
|
|
"bearerAuth": {
|
||
|
|
"type": "http",
|
||
|
|
"scheme": "bearer",
|
||
|
|
"bearerFormat": "JWT",
|
||
|
|
"description": "RS256 JWT token from ouroboros-identity"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|