Files
boc/backups/2026-07-12-1023/landvex-prod/assets/AnalyticsPopout-C0wfA38E.js
T
Bernt 58ca4e68db 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
2026-07-12 12:41:35 +00:00

2 lines
6.2 KiB
JavaScript

import{a as j,p,n as f,j as e,L as g,aX as r,v as t,x as s,ag as i,ah as n,ak as c,y as a,af as u}from"./index-oAPVDf-r.js";import{B as N}from"./badge-Qwi4CUXx.js";import{A as v}from"./arrow-left-m6EiMbb-.js";import{C as l,D as y,L as b}from"./layers-DZd3aBRI.js";import{T as w}from"./trending-up-Be0ZnpBQ.js";import{T as k}from"./triangle-alert-B87swlNS.js";import{Z as A}from"./zap-RaPdKGJZ.js";import{F as C}from"./file-text-CyDVAB5w.js";import{D}from"./download-B0vydl5E.js";import{S as I}from"./server-BrxxSdWs.js";const z=()=>{const{t:L}=j(),{user:d,isLoading:m}=p(),{ordererProfile:x,isLoading:o,isActiveOrderer:h}=f();return m||o?e.jsx("div",{className:"min-h-screen bg-background flex items-center justify-center",children:e.jsx(g,{className:"w-8 h-8 animate-spin text-primary"})}):d?!x||!h?e.jsx(r,{to:"/orderer/dashboard",replace:!0}):e.jsxs("div",{className:"min-h-screen bg-background text-foreground p-6",children:[e.jsxs("div",{className:"flex items-center gap-4 mb-6",children:[e.jsx(t,{variant:"ghost",size:"icon",onClick:()=>window.close(),children:e.jsx(v,{className:"w-5 h-5"})}),e.jsxs("div",{children:[e.jsxs("h1",{className:"text-2xl font-bold flex items-center gap-2",children:[e.jsx(l,{className:"w-6 h-6 text-primary"}),"Analytics"]}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Insikter, mönster och Data Vault"})]})]}),e.jsxs("div",{className:"grid gap-6 lg:grid-cols-2",children:[e.jsxs(s,{className:"glass-card",children:[e.jsxs(i,{children:[e.jsxs(n,{className:"flex items-center gap-2",children:[e.jsx(l,{className:"w-5 h-5 text-primary"}),"Analytics"]}),e.jsx(c,{children:"Geografiska mönster, tidsserier och AI-genererade insikter"})]}),e.jsxs(a,{className:"space-y-4",children:[e.jsxs("div",{className:"grid gap-3",children:[e.jsx(s,{className:"bg-secondary/30",children:e.jsxs(a,{className:"p-4 flex items-center gap-4",children:[e.jsx(u,{className:"w-8 h-8 text-primary"}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium",children:"Geografiska mönster"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Heatmaps, täckningsanalys, zoner"})]})]})}),e.jsx(s,{className:"bg-secondary/30",children:e.jsxs(a,{className:"p-4 flex items-center gap-4",children:[e.jsx(w,{className:"w-8 h-8 text-accent"}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium",children:"Tidsserier"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Före/efter, förändringsdetektering"})]})]})}),e.jsx(s,{className:"bg-secondary/30",children:e.jsxs(a,{className:"p-4 flex items-center gap-4",children:[e.jsx(k,{className:"w-8 h-8 text-warning"}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium",children:"Avvikelsedetektering"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Automatisk flaggning av anomalier"})]})]})})]}),e.jsx(s,{className:"bg-gradient-to-br from-primary/10 to-accent/10 border-primary/20",children:e.jsxs(a,{className:"p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx(A,{className:"w-4 h-4 text-primary"}),e.jsx("span",{className:"text-sm font-medium",children:"AI-genererade insikter"})]}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Sekundärt värde från dina data — automatisk analys av mönster, korrelationer och prognoser baserat på insamlad data."})]})})]})]}),e.jsxs(s,{className:"glass-card",children:[e.jsxs(i,{children:[e.jsxs(n,{className:"flex items-center gap-2",children:[e.jsx(y,{className:"w-5 h-5 text-primary"}),"Data Vault"]}),e.jsx(c,{children:"Immutable rådata-arkiv med full metadata och versionshistorik"})]}),e.jsxs(a,{className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsx(s,{className:"bg-secondary/30",children:e.jsx(a,{className:"p-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 rounded-lg bg-primary/10 flex items-center justify-center",children:e.jsx(C,{className:"w-5 h-5 text-primary"})}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium",children:"Original"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Omodifierad rådata"})]})]})})}),e.jsx(s,{className:"bg-secondary/30",children:e.jsx(a,{className:"p-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 rounded-lg bg-accent/10 flex items-center justify-center",children:e.jsx(b,{className:"w-5 h-5 text-accent"})}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium",children:"Processad"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"AI-behandlad"})]})]})})})]}),e.jsx(s,{className:"bg-secondary/20 border-dashed",children:e.jsxs(a,{className:"p-4",children:[e.jsx("h4",{className:"font-mono text-sm text-primary mb-3",children:"Metadata Schema"}),e.jsxs("div",{className:"space-y-2 text-sm font-mono",children:[e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:"timestamp"}),e.jsx("span",{children:"ISO 8601"})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:"coordinates"}),e.jsx("span",{children:"WGS84"})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:"device"}),e.jsx("span",{children:"EXIF"})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:"contributor"}),e.jsx("span",{children:"UUID"})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:"hash"}),e.jsx("span",{children:"SHA-256"})]})]})]})}),e.jsxs(t,{variant:"outline",className:"w-full gap-2",children:[e.jsx(D,{className:"w-4 h-4"}),"API Export / Bulk Download"]})]})]}),e.jsx(s,{className:"glass-card border-primary/20 lg:col-span-2",children:e.jsxs(a,{className:"p-4 flex items-center gap-3",children:[e.jsx(I,{className:"w-5 h-5 text-primary"}),e.jsxs("div",{className:"flex-1",children:[e.jsx("p",{className:"font-medium text-sm",children:"Data Sources"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"0 aktiva contributors"})]}),e.jsx(N,{variant:"outline",children:"Coming soon"})]})})]})]}):e.jsx(r,{to:"/auth",replace:!0})};export{z as default};