ReactionTallyResource.php 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. <?php
  2. namespace App\Http\Resources\V3;
  3. use Illuminate\Http\Request;
  4. /**
  5. * 某个 type 的计数与「当前用户是否已操作」的摘要(tally 专用)。
  6. *
  7. * 输入是控制器已拼好的聚合行 {type, count, selected, id},这里只负责把类型转对。
  8. * 计数只在这里出现。写端点(store / destroy)不返回聚合值——那是共享的、会被别人
  9. * 改的,mutation 的响应发出去就可能过期。见 v3-resource skill 硬规范第 2 条。
  10. */
  11. class ReactionTallyResource extends BaseResource
  12. {
  13. /**
  14. * @param Request $request
  15. * @return array{
  16. * type: string,
  17. * count: int,
  18. * selected: bool,
  19. * id: string|null
  20. * }
  21. */
  22. public function toArray($request): array
  23. {
  24. return [
  25. 'type' => $this->resource['type'],
  26. 'count' => (int) $this->resource['count'],
  27. 'selected' => (bool) $this->resource['selected'],
  28. 'id' => $this->resource['id'] ?? null,
  29. ];
  30. }
  31. }