* } */ public function forPost(Post $post): array { $original = (string) $post->content; return [ 'post_id' => $post->id, 'original_content' => $original, 'original_length' => mb_strlen($original), 'platforms' => $this->platformPreviews($post, $original)->all(), ]; } /** * @return Collection> */ private function platformPreviews(Post $post, string $original): Collection { return $post->postPlatforms ->where('enabled', true) ->values() ->map(function (PostPlatform $pp) use ($original) { $platform = $pp->socialAccount?->platform ?? $pp->platform; $sanitized = $original === '' ? '' : $this->sanitizer->sanitize($original, $platform); return [ 'post_platform_id' => $pp->id, 'platform' => $platform->value, 'content_type' => $pp->content_type?->value, 'sanitized_content' => $sanitized, 'sanitized_length' => mb_strlen($sanitized), 'max_content_length' => $platform->maxContentLength(), 'truncated' => mb_strlen($sanitized) < mb_strlen($original), ]; }); } }