cocottetech/@platform/codebase/@packages/platform-models/README.md

32 lines
1.4 KiB
Markdown
Raw Normal View History

# @platform/codebase/@packages/platform-models — CocottePlatformModels
Codable Swift mirrors of `platform.api` DTOs. **Single source of truth for V4 platform entity types on iOS.**
This package is **Foundation-only** — no UIKit, no SwiftUI. Safe to consume from iOS apps, Watch extensions, macOS sidecars, and CLI/server-side Swift.
## Scope
- Entity Codables: `User`, `Org`, `OrgMember`, `Persona`, `ContentPlan`, `ContentAsset`, `ContentPost`, `EngagementEvent`, `AgentAction`
- Enums: `SurfaceKind`, `ContentPlanStatus`, `ContentPostStatus`, `ApprovalState`, `ActionStakes`, `EngagementEventType`, `OrgRole`
- Context: `ContextEnvelope`, `ContextSnapshot` (mirrors `@features/ai-copilot/ai-core/src/context/context.aggregator.ts`)
- Decode strategy: snake_case keys, ISO 8601 dates — exposed as `JSONDecoder.cocotteDecoder` / `JSONEncoder.cocotteEncoder`.
## Out of scope
- HTTP / API client — see `@swift/@platform/api-client`
- Messaging payload types (BookingProposal, RateCard, …) — those live in `@swift/@messaging/domain-models`
## Versioning
This package is the contract surface between iOS clients and `platform.api`. **Breaking changes here are coordinated with the backend release.** Bump minor on additive change, major when a field is renamed or removed.
## Build
Swift is not available on the Linux dev box. Build on plum:
```bash
cd ~/Code/@packages/@platform/codebase/@packages/platform-models
swift build
swift test
```