Files
boc/landvex-billing/DESIGN.md
T
Bernt 05ed037fe8 pilot.landvex.com: HTTPS + Full Stack Verified
- DNS: pilot.landvex.com -> 16.170.83.169
- TLS: Let's Encrypt certificate (expires 2026-09-30)
- Nginx: reverse proxy with SSL termination
- API: https://pilot.landvex.com/api/v1/missions
- UI: https://pilot.landvex.com/
- Upload: POST /api/v1/missions/import (multipart/form-data)

Verified:
 https://pilot.landvex.com/health
 https://pilot.landvex.com/version
 https://pilot.landvex.com/api/v1/missions (list)
 https://pilot.landvex.com/api/v1/missions/:id (get)
 POST /api/v1/missions/import (video upload)
 UI loads with title 'LandveX Intelligence Lab'

Next: Pilot 001 — Break the system!
2026-07-02 17:34:19 +00:00

580 lines
33 KiB
Markdown

# LandveX Enterprise Platform — Faktureringsmodul
## Översikt
Faktureringsmodulen hanterar kommunala fakturor och avtal, integrerar med befintliga ekonomisystem och erbjuder rapportering/export i SIE4 och PDF. UI:n är designad för icke-tekniska användare (handläggare, ekonomer, avtalsansvariga).
---
## 1. Datamodell
### 1.1 Huvudentiteter
```
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Customer │ │ Contract │ │ Invoice │
│ (Kund) │1..* │ (Avtal) │1..* │ (Faktura) │
├─────────────────┤◄────┤ ├────►├─────────────────┤
│ id (PK) │ ├─────────────────┤ │ id (PK) │
│ org_number │ │ id (PK) │ │ contract_id (FK)│
│ name │ │ customer_id (FK)│ │ invoice_number │
│ address │ │ contract_type │ │ period_start │
│ postal_code │ │ start_date │ │ period_end │
│ city │ │ end_date │ │ amount_ex_vat │
│ contact_person │ │ amount │ │ vat_amount │
│ email │ │ vat_rate │ │ total_amount │
│ phone │ │ billing_period │ │ due_date │
│ municipality_id │ │ status │ │ status │
│ created_at │ │ created_at │ │ sent_date │
│ updated_at │ │ updated_at │ │ paid_date │
└─────────────────┘ └─────────────────┘ │ created_at │
│ updated_at │
└─────────────────┘
│ 1..*
┌─────────────────┐
│ ContractService │
│(Avtalstjänst) │
├─────────────────┤
│ id (PK) │
│ contract_id (FK)│
│ service_name │
│ description │
│ unit_price │
│ quantity │
│ unit │
│ created_at │
└─────────────────┘
```
### 1.2 Detaljerade tabeller
#### customers (Kunder)
| Kolumn | Typ | Beskrivning |
|--------|-----|-------------|
| id | UUID PK | Unikt ID |
| org_number | VARCHAR(12) | Organisationsnummer (t.ex. 212000-1234) |
| name | VARCHAR(255) | Kommunens/offentliga aktörens namn |
| address | VARCHAR(255) | Postadress |
| postal_code | VARCHAR(10) | Postnummer |
| city | VARCHAR(100) | Ort |
| contact_person | VARCHAR(255) | Kontaktperson |
| email | VARCHAR(255) | E-post |
| phone | VARCHAR(50) | Telefon |
| municipality_id | VARCHAR(4) | Kommunkod (t.ex. 1480 för Göteborg) |
| created_at | TIMESTAMP | Skapad |
| updated_at | TIMESTAMP | Uppdaterad |
#### contracts (Avtal)
| Kolumn | Typ | Beskrivning |
|--------|-----|-------------|
| id | UUID PK | Unikt ID |
| customer_id | UUID FK | Referens till kund |
| contract_number | VARCHAR(50) | Avtalsnummer (t.ex. "LVX-2024-001") |
| contract_type | ENUM | 'service', 'license', 'project', 'subscription' |
| start_date | DATE | Startdatum |
| end_date | DATE | Slutdatum |
| amount | DECIMAL(15,2) | Avtalsbelopp exkl. moms |
| vat_rate | DECIMAL(4,2) | Momssats (t.ex. 25.00) |
| billing_period | ENUM | 'monthly', 'quarterly', 'semi_annual', 'annual', 'one_time' |
| next_billing_date | DATE | Nästa faktureringsdatum |
| status | ENUM | 'draft', 'active', 'paused', 'terminated', 'expired' |
| notes | TEXT | Interna anteckningar |
| created_at | TIMESTAMP | Skapad |
| updated_at | TIMESTAMP | Uppdaterad |
#### contract_services (Avtalstjänster)
| Kolumn | Typ | Beskrivning |
|--------|-----|-------------|
| id | UUID PK | Unikt ID |
| contract_id | UUID FK | Referens till avtal |
| service_name | VARCHAR(255) | Tjänstens namn |
| description | TEXT | Beskrivning |
| unit_price | DECIMAL(15,2) | Pris per enhet |
| quantity | DECIMAL(10,2) | Antal enheter |
| unit | VARCHAR(50) | Enhet (t.ex. 'st', 'tim', 'mån') |
| created_at | TIMESTAMP | Skapad |
#### invoices (Fakturor)
| Kolumn | Typ | Beskrivning |
|--------|-----|-------------|
| id | UUID PK | Unikt ID |
| contract_id | UUID FK | Referens till avtal |
| invoice_number | VARCHAR(50) | Fakturanummer (t.ex. "FV-2024-00042") |
| period_start | DATE | Periodens start |
| period_end | DATE | Periodens slut |
| amount_ex_vat | DECIMAL(15,2) | Belopp exkl. moms |
| vat_amount | DECIMAL(15,2) | Momsbelopp |
| total_amount | DECIMAL(15,2) | Totalt inkl. moms |
| due_date | DATE | Förfallodatum |
| status | ENUM | 'draft', 'sent', 'paid', 'overdue', 'cancelled', 'credited' |
| sent_date | TIMESTAMP | Skickad datum |
| paid_date | DATE | Betald datum |
| reference | VARCHAR(255) | OCR/Referensnummer |
| created_at | TIMESTAMP | Skapad |
| updated_at | TIMESTAMP | Uppdaterad |
#### invoice_rows (Fakturarader)
| Kolumn | Typ | Beskrivning |
|--------|-----|-------------|
| id | UUID PK | Unikt ID |
| invoice_id | UUID FK | Referens till faktura |
| description | VARCHAR(500) | Radbeskrivning |
| quantity | DECIMAL(10,2) | Antal |
| unit | VARCHAR(50) | Enhet |
| unit_price | DECIMAL(15,2) | Pris per enhet |
| total_price | DECIMAL(15,2) | Radsumma |
| created_at | TIMESTAMP | Skapad |
#### integrations (Integrationer)
| Kolumn | Typ | Beskrivning |
|--------|-----|-------------|
| id | UUID PK | Unikt ID |
| name | VARCHAR(255) | Integrationens namn |
| system_type | ENUM | 'fortnox', 'visma', 'hogia', 'custom' |
| config | JSONB | Konfiguration (API-nycklar, URL:er, etc.) |
| is_active | BOOLEAN | Aktiv/inaktiv |
| last_sync | TIMESTAMP | Senaste synkronisering |
| created_at | TIMESTAMP | Skapad |
#### audit_log (Revisionslogg)
| Kolumn | Typ | Beskrivning |
|--------|-----|-------------|
| id | UUID PK | Unikt ID |
| entity_type | VARCHAR(50) | 'invoice', 'contract', 'customer' |
| entity_id | UUID | Referens till entitet |
| action | VARCHAR(50) | 'created', 'updated', 'deleted', 'sent', 'paid' |
| user_id | UUID | Vilken användare |
| old_values | JSONB | Tidigare värden |
| new_values | JSONB | Nya värden |
| created_at | TIMESTAMP | När händelsen inträffade |
---
## 2. API-endpoints
### 2.1 Base URL
```
/api/v1/billing
```
### 2.2 Kunder (Customers)
```
GET /customers # Lista alla kunder (paginerad)
GET /customers/:id # Hämta specifik kund
POST /customers # Skapa ny kund
PUT /customers/:id # Uppdatera kund
DELETE /customers/:id # Ta bort kund (soft delete)
GET /customers/:id/contracts # Hämta kundens avtal
```
**Query-parametrar för GET /customers:**
- `search` — fritextsökning på namn/org.nr
- `municipality_id` — filtrera på kommunkod
- `page`, `limit` — paginering
- `sort` — sortering (t.ex. `name:asc`)
### 2.3 Avtal (Contracts)
```
GET /contracts # Lista avtal
GET /contracts/:id # Hämta specifikt avtal
POST /contracts # Skapa nytt avtal
PUT /contracts/:id # Uppdatera avtal
DELETE /contracts/:id # Ta bort avtal
PUT /contracts/:id/status # Ändra status (activate/pause/terminate)
GET /contracts/:id/invoices # Hämta avtalets fakturor
POST /contracts/:id/renew # Förnya avtal
```
**Query-parametrar för GET /contracts:**
- `search` — fritextsökning
- `status` — filtrera på status
- `customer_id` — filtrera på kund
- `expiring_within` — dagar till upphörande (t.ex. 30, 90)
- `page`, `limit`, `sort`
### 2.4 Fakturor (Invoices)
```
GET /invoices # Lista fakturor
GET /invoices/:id # Hämta specifik faktura
POST /invoices # Skapa manuell faktura
POST /invoices/generate # Generera fakturor från avtal
PUT /invoices/:id # Uppdatera utkast
PUT /invoices/:id/send # Skicka faktura
PUT /invoices/:id/pay # Markera som betald
PUT /invoices/:id/cancel # Makulera faktura
PUT /invoices/:id/credit # Skapa kreditfaktura
GET /invoices/:id/pdf # Generera PDF
GET /invoices/:id/sie4 # Exportera som SIE4
```
**Query-parametrar för GET /invoices:**
- `search` — fritextsökning
- `status` — filtrera på status
- `customer_id` — filtrera på kund
- `contract_id` — filtrera på avtal
- `period_from`, `period_to` — datumintervall
- `overdue` — true/false, visa endast förfallna
- `page`, `limit`, `sort`
### 2.5 Rapportering & Export
```
GET /reports/summary # Sammanfattning (intäkter, förfallna, etc.)
GET /reports/revenue # Intäktsrapport per period
GET /reports/aging # Förfallorapport (aging report)
GET /reports/export/sie4 # SIE4-export för period
GET /reports/export/pdf # PDF-rapport
POST /reports/custom # Anpassad rapport
```
**Query-parametrar för rapporter:**
- `period_from`, `period_to` — obligatoriska datum
- `customer_id` — valfri filtrering
- `group_by` — 'month', 'quarter', 'year', 'customer'
### 2.6 Integrationer
```
GET /integrations # Lista integrationer
GET /integrations/:id # Hämta integration
POST /integrations # Skapa integration
PUT /integrations/:id # Uppdatera integration
DELETE /integrations/:id # Ta bort integration
POST /integrations/:id/sync # Manuell synkronisering
GET /integrations/:id/logs # Synkroniseringsloggar
```
### 2.7 Autogenerering (Cron/Scheduler)
```
POST /jobs/generate-invoices # Trigga fakturagenerering
GET /jobs/status # Status på bakgrundsjobb
```
---
## 3. UI-skiss (Textbeskrivning)
### 3.1 Designprinciper
- **Enkelhet**: Minimera antalet klick för vanliga uppgifter
- **Tydlighet**: Tydliga statusindikatorer (färger, ikoner)
- **Kontext**: All relevant info synlig utan att navigera bort
- **Tillgänglighet**: WCAG 2.1 AA, stöd för skärmläsare
### 3.2 Huvudnavigering (Sidebar)
```
┌────────────────────────────────────────┐
│ 🏠 LandveX Fakturering │
├────────────────────────────────────────┤
│ 📋 Översikt ← Dashboard │
│ 👥 Kunder │
│ 📄 Avtal │
│ 💰 Fakturor │
│ 📊 Rapporter │
│ 🔌 Integrationer │
├────────────────────────────────────────┤
│ ⚙️ Inställningar │
│ ❓ Hjälp │
└────────────────────────────────────────┘
```
### 3.3 Dashboard (Översikt)
```
┌─────────────────────────────────────────────────────────────┐
│ God morgon, [Användare]! [Sök] [🔔] [👤 Profil] │
├─────────────────────────────────────────────────────────────┤
│ SNABBLÄNKAR: │
│ [+ Ny faktura] [+ Nytt avtal] [📥 Importera] [⚙️] │
├─────────────────────────────────────────────────────────────┤
│ KORT (4 st i rad): │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌────────┐│
│ │ 💰 Omsättn. │ │ 📄 Fakturor │ │ ⏰ Förfallna│ │ ✅ Bet. ││
│ │ 1 245 000 │ │ 42 denna │ │ 7 st │ │ 35 st ││
│ │ kr (mån) │ │ månad │ │ 89 500 kr │ │ ││
│ │ +12% vs förra│ │ │ │ 🔴 Varning! │ │ ││
│ └─────────────┘ └─────────────┘ └─────────────┘ └────────┘│
├─────────────────────────────────────────────────────────────┤
│ TVÅ KOLUMNER: │
│ ┌─────────────────────────┐ ┌─────────────────────────┐ │
│ │ 📅 Kommande fakturering │ │ 🔔 Påminnelser │ │
│ │ ─────────────────────── │ │ ─────────────────────── │ │
│ │ • Avtal #123 - 15 jan │ │ • 7 fakturor förfallna │ │
│ │ • Avtal #456 - 22 jan │ │ • 2 avtal upphör snart │ │
│ │ • Avtal #789 - 1 feb │ │ • 1 synkronisering fel │ │
│ │ │ │ │ │
│ │ [Visa alla] │ │ [Hantera] │ │
│ └─────────────────────────┘ └─────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
```
### 3.4 Kundlista
```
┌─────────────────────────────────────────────────────────────┐
│ 👥 Kunder [+ Ny kund] │
├─────────────────────────────────────────────────────────────┤
│ [Sök kund...] [Filtrera ▼] [Kommun ▼] [Export ▼] │
├─────────────────────────────────────────────────────────────┤
│ Namn │ Org.nr │ Kommun │ Avtal │ Status │
│ ───────────────┼─────────────┼───────────┼───────┼────────│
│ Göteborgs Stad │ 212000-1234 │ Göteborg │ 3 │ 🟢 Akt │
│ Malmö Stad │ 212000-5678 │ Malmö │ 1 │ 🟢 Akt │
│ Uppsala Kommun │ 212000-9012 │ Uppsala │ 2 │ 🟡 Paus│
├─────────────────────────────────────────────────────────────┤
│ Visar 1-3 av 3 kunder [<] [1] [>] │
└─────────────────────────────────────────────────────────────┘
```
**Klick på rad → Kunddetaljvy med flikar:**
- **Översikt**: Kontaktinfo, snabbfakta, noteringar
- **Avtal**: Lista med avtal, status, belopp
- **Fakturor**: Historik över alla fakturor
- **Aktivitet**: Revisionslogg
### 3.5 Avtalslista
```
┌─────────────────────────────────────────────────────────────┐
│ 📄 Avtal [+ Nytt avtal] │
├─────────────────────────────────────────────────────────────┤
│ [Sök...] [Status ▼] [Typ ▼] [Förfaller ▼] [Export ▼] │
├─────────────────────────────────────────────────────────────┤
│ Avtalsnr │ Kund │ Typ │ Period │ Belopp │
│ ─────────┼─────────────┼───────────┼─────────────┼────────│
│ LVX-001 │ Göteborg │ Tjänst │ 2024-01 → │ 50 000 │
│ LVX-002 │ Malmö │ Licens │ 2024-06 → │ 120 000│
│ LVX-003 │ Uppsala │ Projekt │ 2024-03 → │ 75 000 │
├─────────────────────────────────────────────────────────────┤
│ [Bulk: 🔄 Förnya] [⏸ Pausa] [❌ Avsluta] │
└─────────────────────────────────────────────────────────────┘
```
**Statusfärger:**
- 🟢 Grön = Aktivt
- 🟡 Gul = Pausat
- 🔴 Röd = Upphört / Upphör snart (< 30 dagar)
- ⚪ Grå = Utkast
### 3.6 Fakturor
```
┌─────────────────────────────────────────────────────────────┐
│ 💰 Fakturor [+ Ny faktura] │
├─────────────────────────────────────────────────────────────┤
│ [Sök...] [Status ▼] [Period ▼] [Kund ▼] [Generera ▼] │
├─────────────────────────────────────────────────────────────┤
│ Fakturanr │ Kund │ Period │ Belopp │ Status │
│ ──────────┼─────────────┼─────────────┼─────────┼────────│
│ FV-00042 │ Göteborg │ 2024-12 │ 62 500 │ 🟢 Bet │
│ FV-00043 │ Malmö │ 2024-Q4 │ 30 000 │ 🟡 Skk │
│ FV-00044 │ Uppsala │ 2024-12 │ 18 750 │ 🔴 Övr │
├─────────────────────────────────────────────────────────────┤
│ [Bulk: 📧 Skicka] [💾 SIE4] [📄 PDF] [❌ Makulera] │
└─────────────────────────────────────────────────────────────┘
```
**Statusfärger:**
- ⚪ Vit/Grå = Utkast
- 🟡 Gul = Skickad
- 🟢 Grön = Betald
- 🔴 Röd = Förfallen / Överfallen
- 🟣 Lila = Krediterad
- ⬛ Grå = Makulerad
**Fakturadetaljvy:**
- Fakturahuvud (nummer, datum, kund, referens)
- Fakturarader (tabell med beskrivning, antal, pris, summa)
- Tidslinje: Skapad → Skickad → Betald / Förfallen
- Åtgärder: [Skicka] [Skriv ut/PDF] [Kreditera] [Makulera]
- Kommentarer/historik
### 3.7 Rapporter
```
┌─────────────────────────────────────────────────────────────┐
│ 📊 Rapporter │
├─────────────────────────────────────────────────────────────┤
│ Välj rapport: │
│ [📈 Intäktsrapport] [⏰ Förfallorapport] [📋 Transaktioner]│
├─────────────────────────────────────────────────────────────┤
│ Period: [2024-01-01] till [2024-12-31] │
│ Gruppera per: [Månad ▼] Kund: [Alla ▼] │
│ │
│ [📊 Generera] [💾 SIE4] [📄 PDF] [📊 Excel] │
├─────────────────────────────────────────────────────────────┤
│ RESULTAT (tabell + enkel graf): │
│ Period │ Antal │ Belopp exkl. moms │ Moms │ Totalt │
│ ──────────┼───────┼───────────────────┼──────┼────────────│
│ Jan 2024 │ 5 │ 125 000 kr │25 000│ 150 000 kr │
│ Feb 2024 │ 4 │ 100 000 kr │20 000│ 120 000 kr │
│ ... │ ... │ ... │ ... │ ... │
├─────────────────────────────────────────────────────────────┤
│ [📈 Visa graf] [📧 Skicka rapport] │
└─────────────────────────────────────────────────────────────┘
```
### 3.8 Generera fakturor (Wizard)
```
┌─────────────────────────────────────────────────────────────┐
│ 🔄 Generera fakturor — Steg 1 av 3 │
├─────────────────────────────────────────────────────────────┤
│ 1. Välj avtal 2. Granska 3. Bekräfta │
│ [████████] [────────] [────────] │
├─────────────────────────────────────────────────────────────┤
│ Välj vilka avtal som ska faktureras: │
│ │
│ [✅] LVX-001 — Göteborg — Tjänst — 50 000 kr │
│ [✅] LVX-002 — Malmö — Licens — 30 000 kr │
│ [ ] LVX-003 — Uppsala — Pausat (hoppas över) │
│ │
│ [✅ Välj alla] [❌ Avmarkera alla] │
├─────────────────────────────────────────────────────────────┤
│ [Avbryt] [Nästa: Granska →] │
└─────────────────────────────────────────────────────────────┘
```
### 3.9 Integrationer
```
┌─────────────────────────────────────────────────────────────┐
│ 🔌 Integrationer [+ Ny integration]│
├─────────────────────────────────────────────────────────────┤
│ System │ Status │ Senaste synk │ Åtgärder │
│ ───────────┼─────────┼───────────────┼─────────────────────│
│ Fortnox │ 🟢 OK │ 2024-01-15 │ [🔄 Synka] [⚙️] │
│ Visma │ 🟡 Varn │ 2024-01-10 │ [🔄 Synka] [⚙️] │
│ Hogia │ 🔴 Fel │ 2024-01-05 │ [🔄 Synka] [⚙️] [📋]│
├─────────────────────────────────────────────────────────────┤
│ SYNKRONISERINGSINSTÄLLNINGAR: │
│ [ ] Synkronisera automatiskt varje natt (02:00) │
│ [ ] Skicka fakturor direkt till ekonomisystemet │
│ [ ] Importera betalningar automatiskt │
└─────────────────────────────────────────────────────────────┘
```
---
## 4. Integrationer med ekonomisystem
### 4.1 Fortnox
- **API**: REST API v3 (OAuth2)
- **Funktioner**:
- Skicka fakturor till Fortnox (skapar kundfaktura)
- Hämta betalningsstatus
- Synkronisera kundregister
- **Konfiguration**: Client ID, Client Secret, Authorization Code
### 4.2 Visma
- **API**: Visma.net ERP API / Visma eAccounting API
- **Funktioner**:
- Export av fakturor och verifikationer
- Import av betalningar
- **Konfiguration**: API-nyckel, Tenant ID
### 4.3 Hogia
- **API**: Hogia Web API / filbaserad export
- **Funktioner**:
- SIE4-export (standardformat)
- CSV-export för import
- **Konfiguration**: API-nyckel eller filsökväg
### 4.4 Generisk SIE4-export
- Standardformat för svensk bokföring
- Kan importeras i de flesta ekonomisystem
- Stöd för SIE4 typ 1 (saldobalans) och typ 4 (transaktioner)
---
## 5. Teknisk arkitektur (Översikt)
```
┌─────────────────────────────────────────────────────────────┐
│ WEBBLÄSARE (React/Vue) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
│ │ Dashboard │ │ Faktura- │ │ Rapporter & Export │ │
│ │ │ │ hantering │ │ │ │
│ └─────────────┘ └─────────────┘ └─────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
▼ REST API (JSON)
┌─────────────────────────────────────────────────────────────┐
│ API-LAGER (Node.js/Python) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
│ │ Kunder │ │ Avtal │ │ Fakturor │ │
│ │ /customers │ │ /contracts │ │ /invoices │ │
│ └─────────────┘ └─────────────┘ └─────────────────────┘ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
│ │ Rapporter │ │ Integration│ │ Autogenerering │ │
│ │ /reports │ │ /integrations│ │ (Cron-jobb) │ │
│ └─────────────┘ └─────────────┘ └─────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ DATASKIKT (PostgreSQL) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
│ │ customers │ │ contracts │ │ invoices │ │
│ │ contract_ │ │ services │ │ invoice_rows │ │
│ └─────────────┘ └─────────────┘ └─────────────────────┘ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
│ │ integrations│ │ audit_log │ │ (indexerade sök) │ │
│ └─────────────┘ └─────────────┘ └─────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ EXTERNA INTEGRATIONER │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
│ │ Fortnox │ │ Visma │ │ Hogia / SIE4 │ │
│ │ (REST API) │ │ (REST API) │ │ (Fil/API) │ │
│ └─────────────┘ └─────────────┘ └─────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
```
---
## 6. Säkerhet & Rättigheter
### Roller
| Roll | Rättigheter |
|------|-------------|
| **Admin** | Alla rättigheter, hantera integrationer |
| **Ekonom** | Skapa/skicka fakturor, rapporter, export |
| **Avtalsansvarig** | Hantera avtal och kunder, se fakturor |
| **Läsare** | Se allt, kan inte skapa/ändra |
### Säkerhetsåtgärder
- Alla ändringar loggas i `audit_log`
- Känslig data krypteras i vila (AES-256)
- API-nycklar och tokens lagras krypterat
- Rollbaserad åtkomstkontroll (RBAC) på alla endpoints
---
## 7. Implementeringsfaser
| Fas | Innehåll | Tidsestimat |
|-----|----------|-------------|
| **1** | Datamodell, API-grund, kundhantering | 2 veckor |
| **2** | Avtalshantering, fakturagenerering | 2 veckor |
| **3** | UI (Dashboard, listor, detaljvyer) | 2 veckor |
| **4** | PDF-export, SIE4-export | 1 vecka |
| **5** | Integrationer (Fortnox, Visma, Hogia) | 2 veckor |
| **6** | Rapporter, avancerade funktioner | 2 veckor |
| **7** | Testning, dokumentation, lansering | 2 veckor |
**Totalt: ~13 veckor**
---
*Dokumentversion: 1.0*
*Skapad: 2026-07-02*
*För: LandveX Enterprise Platform*