feat(boc): Complete Business Operations Center v1.0

- Go backend API with full CRUD for all modules (CRM, Sales, Finance, HR, Legal, Marketing, Support, Purchase, Inventory, Projects, Automation, Analytics)
- Rust analytics service with parallel report generation
- C runtime with POSIX shared memory IPC
- PostgreSQL schema with 30+ tables, full migrations
- Redis cache, sessions, pub/sub
- Kafka event streaming with Zookeeper
- WebSocket hub for real-time updates
- Automation engine with cron jobs, workflows, event triggers
- JWT authentication, multi-tenant from start
- Docker Compose with all services
- Nginx reverse proxy with rate limiting
- Integration tests passing
- Feature gap analysis against Fortnox/Odoo/Visma

Refs: BOC-001
This commit is contained in:
Bernt
2026-07-12 12:41:35 +00:00
parent 4789a7fb48
commit 58ca4e68db
26666 changed files with 575891 additions and 2074516 deletions
@@ -0,0 +1,53 @@
"use strict";
// File generated from our OpenAPI spec
Object.defineProperty(exports, "__esModule", { value: true });
exports.Invoices = void 0;
const StripeResource_js_1 = require("../StripeResource.js");
const stripeMethod = StripeResource_js_1.StripeResource.method;
exports.Invoices = StripeResource_js_1.StripeResource.extend({
create: stripeMethod({ method: 'POST', fullPath: '/v1/invoices' }),
retrieve: stripeMethod({ method: 'GET', fullPath: '/v1/invoices/{invoice}' }),
update: stripeMethod({ method: 'POST', fullPath: '/v1/invoices/{invoice}' }),
list: stripeMethod({
method: 'GET',
fullPath: '/v1/invoices',
methodType: 'list',
}),
del: stripeMethod({ method: 'DELETE', fullPath: '/v1/invoices/{invoice}' }),
finalizeInvoice: stripeMethod({
method: 'POST',
fullPath: '/v1/invoices/{invoice}/finalize',
}),
listLineItems: stripeMethod({
method: 'GET',
fullPath: '/v1/invoices/{invoice}/lines',
methodType: 'list',
}),
listUpcomingLines: stripeMethod({
method: 'GET',
fullPath: '/v1/invoices/upcoming/lines',
methodType: 'list',
}),
markUncollectible: stripeMethod({
method: 'POST',
fullPath: '/v1/invoices/{invoice}/mark_uncollectible',
}),
pay: stripeMethod({ method: 'POST', fullPath: '/v1/invoices/{invoice}/pay' }),
retrieveUpcoming: stripeMethod({
method: 'GET',
fullPath: '/v1/invoices/upcoming',
}),
search: stripeMethod({
method: 'GET',
fullPath: '/v1/invoices/search',
methodType: 'search',
}),
sendInvoice: stripeMethod({
method: 'POST',
fullPath: '/v1/invoices/{invoice}/send',
}),
voidInvoice: stripeMethod({
method: 'POST',
fullPath: '/v1/invoices/{invoice}/void',
}),
});