# `portal-platform` — materialization manifest

`_init.ps1` overlays these files on top of the stack preset output.

```
# Backend (additive on dotnet-enterprise)
dotnet/src/Api/Controllers/Portal/
├── AnnouncementsController.cs
├── DocumentsController.cs
├── ApprovalsController.cs
└── DirectoryController.cs

dotnet/src/Application/Portal/
├── Announcements/                                CQRS handlers + validators
├── Documents/
├── Approvals/                                    state-machine service
└── Directory/

dotnet/src/Domain/Portal/
├── Entities/
│   ├── Announcement.cs
│   ├── Document.cs
│   ├── ApprovalRequest.cs
│   ├── ApprovalStep.cs
│   ├── Department.cs
│   └── OrgUnit.cs
└── Events/
    ├── ApprovalSubmitted.cs
    └── ApprovalDecided.cs

dotnet/src/Infrastructure/Persistence/Configurations/Portal/
├── AnnouncementConfiguration.cs
└── ...

# Frontend (additive on angular-enterprise)
apps/web-angular/src/app/features/
├── dashboard/                                    summary widgets
├── announcements/                                list + composer
├── documents/                                    grid + upload + preview
├── approvals/                                    inbox + detail + actions
└── directory/                                    search + profile drawer

# Knowledge
knowledge/business/portal-tenancy-model.md
knowledge/workflows/approval-chain.md
knowledge/workflows/onboarding-kyc.md
knowledge/patterns/document-library.md

# Schema additions (merged into prisma/schema.prisma in Phase 5)
- model Tenant, Department, OrgUnit, Announcement, Document, ApprovalRequest, ApprovalStep, DirectoryEntry
```

The actual files land in Phases 3 (frontend), 4 (backend), 5 (schema), 7 (knowledge seeds).
