summaryrefslogtreecommitdiff
path: root/matrix-specification/Data/Room/Rooms.php
blob: 1a84608c9aea226ec52270bc55c4c2a028111484 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?php

namespace Matrix\Data\Room;

class Rooms implements \JsonSerializable
{
  /**
   * @param array<string, InvitedRoom> $invite
   * @param array<string, JoinedRoom> $join
   * @param array<string, KnockedRoom> $knock
   * @param array<string, LeftRoom> $leave
   */
  public function __construct(
    private ?array $invite = null,
    private ?array $join = null,
    private ?array $knock = null,
    private ?array $leave = null,
  )
  {}

  public function jsonSerialize(): array
  {
    return [
      "invite" => $this->invite ?? new \stdClass(),
      "join" => $this->join ?? new \stdClass(),
      "knock" => $this->knock ?? new \stdClass(),
      "leave" => $this->leave ?? new \stdClass(),
    ];
  }

  /**
   * @return InvitedRoom[]
   */
  public function getInvite(): ?array
  {
    return $this->invite;
  }

  /**
    * @return JoinedRoom[]
    */
  public function getJoined(): ?array
  {
    return $this->join;
  }

  /**
    * @return KnockedRoom[]
    */
  public function getKnocked(): ?array
  {
    return $this->knock;
  }

  /**
    * @return LeftRoom[]
    */
  public function getLeft(): ?array
  {
    return $this->leave;
  }
}