# Fiberportal – Complete Module Blueprint

Dette dokumentet beskriver anbefalt modulstruktur for Fiberportal som et modulært SaaS-produkt.

## Kjerneprinsipp

Fiberportal består av:
- **kjerne** som alltid er aktiv
- **tilvalsmoduler** som kan aktiveres per tenant

Kjernen skal være stabil, liten og felles for alle kunder.
Tilvalsmoduler skal kunne legges til uten å endre grunnarkitekturen.

---

## 1. Kjerneplattformsmoduler

Disse bør regnes som del av kjernen og være aktive for alle tenants.

### 1. Authentication
Ansvar:
- innlogging
- utlogging
- passord
- sesjoner
- tilgangskontroll

Tabeller:
- fp_users
- fp_tenant_users

### 2. Tenants
Ansvar:
- selskaper / kunder
- tenant-status
- tenant-innstillinger

Tabeller:
- fp_tenants
- fp_tenant_settings

### 3. Roles & Permissions
Ansvar:
- roller
- rettigheter
- RBAC
- tilgang per modul

Tabeller:
- fp_roles
- fp_permissions
- fp_role_permissions

### 4. Module Management
Ansvar:
- registrere moduler
- aktivere/deaktivere moduler per tenant
- modulkonfigurasjon

Tabeller:
- fp_modules
- fp_tenant_modules
- fp_tenant_module_settings

### 5. Projects
Ansvar:
- prosjektoversikt
- prosjektstatus
- prosjektmedlemmer
- prosjektmetadata

Tabeller:
- fp_projects
- fp_project_statuses
- fp_project_users

### 6. Cases
Ansvar:
- fortettingssaker
- nytilknytning
- vurderinger
- statusflyt per sak

Tabeller:
- fp_cases
- fp_case_types
- fp_case_statuses

### 7. Comments
Ansvar:
- intern kommunikasjon
- ekstern kommunikasjon
- loggføring av endringer

Tabeller:
- fp_comments

### 8. Attachments
Ansvar:
- dokumentopplasting
- filer på prosjekt/sak
- vedlegg med intern/ekstern synlighet

Tabeller:
- fp_attachments

### 9. Notifications
Ansvar:
- bruker-varsler
- nye kommentarer
- statusendringer
- oppgaver og frister

Tabeller:
- fp_notifications

### 10. Audit Logs
Ansvar:
- historikk
- sporbarhet
- hvem gjorde hva og når

Tabeller:
- fp_audit_logs

---

## 2. Tilvalsmoduler

Disse modulene kan aktiveres per tenant etter behov.

### 11. Tasks
Ansvar:
- oppgaver
- ansvarlig person
- frist
- oppgavestatus

Tabeller:
- fp_mod_tasks_tasks
- fp_mod_tasks_task_statuses

### 12. Milestones
Ansvar:
- milepåler
- prosjektfremdrift
- planlagt vs faktisk dato

Anbefalte tabeller:
- fp_mod_milestones_milestones
- fp_mod_milestones_templates

### 13. Reporting
Ansvar:
- lagrede rapporter
- eksport
- dashboards
- filtrert statistikk

Anbefalte tabeller:
- fp_mod_reports_saved_reports
- fp_mod_reports_report_exports

### 14. Maps / GIS
Ansvar:
- kartlag
- lokasjoner
- traseer
- kobling mellom sak og kartobjekt

Anbefalte tabeller:
- fp_mod_maps_layers
- fp_mod_maps_features
- fp_mod_maps_feature_links

### 15. Cost Estimation
Ansvar:
- estimat på fortettingsjobb
- avstand
- prisberegning
- kalkylegrunnlag

Anbefalte tabeller:
- fp_mod_estimation_estimates
- fp_mod_estimation_templates
- fp_mod_estimation_line_items

### 16. Customer Portal
Ansvar:
- kundeinnsyn
- ekstern visning av prosjekter og saker
- kundespesifikke dashboards

Anbefalte tabeller:
- fp_mod_customerportal_views
- fp_mod_customerportal_access_rules

### 17. Contractor Portal
Ansvar:
- entreprenørtilgang
- tildelte saker/prosjekter
- dokumentasjon fra felt
- avvik

Anbefalte tabeller:
- fp_mod_contractors_assignments
- fp_mod_contractors_field_reports
- fp_mod_contractors_deviations

### 18. Time Tracking
Ansvar:
- timeregistrering
- ressursbruk
- prosjektbelastning

Anbefalte tabeller:
- fp_mod_time_entries
- fp_mod_time_categories

### 19. Internal Notes
Ansvar:
- interne notater
- skjult informasjon kun for interne roller

Anbefalte tabeller:
- fp_mod_notes_notes

### 20. Integrations
Ansvar:
- integrasjoner mot e-post
- GIS
- ERP
- CRM
- dokumentsystemer

Anbefalte tabeller:
- fp_mod_integrations_connections
- fp_mod_integrations_sync_logs

---

## 3. Modulnivåer / pakkestruktur

### Grunnpakke
- Projects
- Cases
- Comments
- Attachments
- Notifications

### Prosjektstyring
- Grunnpakke
- Tasks
- Milestones

### Drift / felt
- Prosjektstyring
- Contractor Portal
- Internal Notes

### Analyse / ledelse
- Reporting
- Cost Estimation
- Maps / GIS

### Full portal
- Kundeportal
- Entreprenørportal
- Rapportering
- Kart
- Estimat

---

## 4. Rekkefølge for utvikling

### Fase 1 – Kjerne
1. Authentication
2. Tenants
3. Roles & Permissions
4. Module Management
5. Projects
6. Cases
7. Comments
8. Attachments
9. Audit Logs
10. Notifications

### Fase 2 – Operativ prosjektstyring
11. Tasks
12. Milestones
13. Internal Notes

### Fase 3 – Eksterne aktører
14. Customer Portal
15. Contractor Portal

### Fase 4 – Innsikt og spesialfunksjoner
16. Reporting
17. Maps / GIS
18. Cost Estimation
19. Integrations
20. Time Tracking

---

## 5. Regel for nye moduler

Når en ny modul lages, skal følgende være på plass:

1. Modul registreres i `fp_modules`
2. Modul kan aktiveres per tenant via `fp_tenant_modules`
3. Tabeller bruker prefix:
   `fp_mod_<module>_`
4. Modulen har egne permissions
5. Modulen har egen dokumentasjon i `/docs/modules/`
6. Modulen skal kunne deaktiveres uten å bryte kjernen

---

## 6. Arkitekturregel

Kjernen skal aldri få kundespesifikk logikk hardkodet inn.
Kundespesifikk funksjonalitet skal løses via:
- tenant settings
- tenant module settings
- modulkonfigurasjon
- permissions
