Files
boc/docs/GOVERNMENT_PORTAL_SPEC.md
T

173 lines
5.5 KiB
Markdown

# Government Customer Portal — Specification
## Core Principle
**Myndigheter ska själva administrera:**
- Betalningssätt (kort, faktura, autogiro)
- Fakturaadress och referenser
- Kostnadsramar och budgetbevakning
- Användare och behörigheter
- Vilka områden de vill bevaka
## Self-Service Model
| Funktion | Beskrivning |
|----------|-------------|
| **Betalningsinställningar** | Välj kort, faktura, autogiro. Ange fakturaadress, OCR/er referens, attestflöde |
| **Kostnadsramar** | Sätt månads-/årsbudget. Få varning vid 80%. Blockera vid 100% (kan överridas) |
| **Användarhantering** | Lägg till kollegor, tilldela roller (beställare, attestant, tittare) |
| **Bevakningsområden** | Rita på karta, välj fastigheter, adresser, eller kommunala objekt |
| **Fakturahistorik** | Se alla fakturor, ladda ner PDF, exportera till Excel |
| **Avtalsöversikt** | Se aktiva avtal, förbrukning, förnyelsedatum |
## Integrationer
### Stripe
- Kortbetalning (automatiskt)
- Sätta upp autogiro
- Faktura via Stripe (alternativ till PEPPOL)
### PEPPOL (för myndigheter som kräver det)
- Elektronisk faktura direkt till deras ekonomisystem
- Stöd för Svefaktura 1.0 / PEPPOL BIS Billing 3.0
- Org-nr validering mot Skatteverket
### AAMOS Ledger (port 3250)
- Bokföring av alla transaktioner
- SIE4-export för myndighetens redovisning
- Momsredovisning
## Teknisk Arkitektur
```
┌─────────────────────────────────────────┐
│ Government Portal (React/Vue) │
│ - Självbetjäning │
│ - Kostnadsöversikt │
│ - Fakturahistorik │
└─────────────────┬───────────────────────┘
┌─────────────────▼───────────────────────┐
│ LandveX Gateway (port 3004) │
│ - Auth & API-nycklar │
│ - Routing till rätt tjänst │
└─────────────────┬───────────────────────┘
┌─────────────┼─────────────┐
│ │ │
┌───▼───┐ ┌────▼────┐ ┌────▼────┐
│Stripe │ │ PEPPOL │ │AAMOS │
│ │ │ Gateway │ │Ledger │
│3250 │ │ │ │(3250) │
└───────┘ └─────────┘ └─────────┘
```
## Data Model
```typescript
interface GovernmentCustomer {
id: string; // org-nr som ID
name: string;
type: 'kommun' | 'region' | 'myndighet' | 'bolag';
// Betalningsinställningar
paymentSettings: {
method: 'card' | 'invoice' | 'autogiro';
invoiceAddress: string;
invoiceEmail: string;
reference: string; // "Ert referensnummer"
ocrNumber?: string;
costCenter?: string;
};
// Kostnadsramar
budgetLimits: {
monthly?: number;
yearly?: number;
alertAtPercent: number; // default 80
blockAtPercent: number; // default 100
};
// Bevakningsområden
watchAreas: Array<{
id: string;
name: string;
geometry: GeoJSON.Polygon; // Rita på karta
type: 'custom' | 'property' | 'municipal';
}>;
// Användare
users: Array<{
email: string;
role: 'admin' | 'orderer' | 'approver' | 'viewer';
name: string;
}>;
}
```
## API Endpoints
```
GET /api/v1/government/me → Min profil
PUT /api/v1/government/payment → Uppdatera betalningsinställningar
GET /api/v1/government/invoices → Fakturahistorik
GET /api/v1/government/budget → Kostnadsöversikt
POST /api/v1/government/areas → Lägg till bevakningsområde
GET /api/v1/government/areas → Lista bevakningsområden
DELETE /api/v1/government/areas/:id → Ta bort bevakningsområde
POST /api/v1/government/users → Bjud in användare
```
## Fakturaflöde
```
1. Myndighet beställer tjänst
2. Uppdrag genomförs
3. Faktura genereras (PDF + PEPPOL)
4. Faktura skickas till angiven adress/epost
5. Myndighet ser faktura i portalen
6. Betalning registreras i AAMOS Ledger
7. SIE4-export för redovisning
```
## Kostnadsöversikt (Dashboard)
| Widget | Data |
|--------|------|
| **Denna månad** | Förbrukat / Budget |
| **Prognos** | Årsprognos baserat på nuvarande takt |
| **Per tjänst** | Uppdelning per typ av uppdrag |
| **Per område** | Kostnad per bevakningsområde |
| **Jämförelse** | Denna månad vs förra månaden |
## MVP-0: Government Portal
### Sprint 1: Grund
- [ ] Inloggning med BankID (Svensk E-legitimation)
- [ ] Profilsida med org-nr och adress
- [ ] Betalningsinställningar (fakturaadress, referens)
### Sprint 2: Bevakning
- [ ] Karta med ritverktyg
- [ ] Spara bevakningsområden
- [ ] Lista bevakade områden
### Sprint 3: Ekonomi
- [ ] Kostnadsöversikt
- [ ] Fakturahistorik
- [ ] Budgetvarningar
### Sprint 4: Användare
- [ ] Bjud in kollegor
- [ ] Roller och behörigheter
- [ ] Attestflöde
## Status
**Specifikation:** ✅ KLAR
**Implementation:** 🔄 EJ PÅBÖRJAD
**Beroenden:**
- AAMOS Ledger (3250) — måste vara igång
- Stripe — måste konfigureras
- PEPPOL — kan vänta till efter MVP