The post editor lost the Pinterest board picker during a UI rewrite, causing scheduled posts to fail in production with 'Pinterest board_id is required'. This restores the picker and locks the contract with validation + tests so the regression cannot happen silently again. Backend: - PostController: pinterestBoards is now Record<account_id, Board[]> (mirrors the TikTok creator-info pattern); supports multi-account. - UpdatePostRequest: 'platforms.*.meta.board_id' rule + after-validator rejects Publishing/Scheduling Pinterest posts without board_id. Frontend: - PinterestSettings.vue: Combobox board picker with empty-state warning; emits update:meta with board_id. - ScheduleTab / PostEditorSidebar / Edit pass pinterestBoards down by social_account_id. Tests (6 new): - UpdatePostRequestTest: rejects publishing/scheduling without board_id across pin/carousel/video pin; allows draft without board_id; pinterest error doesn't block sibling platforms in multi-platform. - PinterestPublisherTest: publisher throws for carousel + video pin when no board_id (existing image-pin case kept). 1542 tests passing. |
||
|---|---|---|
| .. | ||
| components | ||
| composables | ||
| data | ||
| enums | ||
| layouts | ||
| lib | ||
| pages | ||
| types | ||
| utils | ||
| app.ts | ||
| datalayer.ts | ||
| date.ts | ||
| dayjs.ts | ||
| debounce.ts | ||
| posthog.ts | ||
| ssr.ts | ||