173 lines
5.5 KiB
Markdown
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
|