32 lines
1.4 KiB
Markdown
32 lines
1.4 KiB
Markdown
|
|
# @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
|
||
|
|
```
|