Master Backend Plan v3.0 + Government Portal + Implementation Order
This commit is contained in:
@@ -0,0 +1,172 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user