@@ -168,6 +168,8 @@ class Room {
168168 private $ password ;
169169 /** @var int */
170170 private $ activeGuests ;
171+ /** @var int */
172+ private $ callFlag ;
171173 /** @var \DateTime|null */
172174 private $ activeSince ;
173175 /** @var \DateTime|null */
@@ -204,6 +206,7 @@ public function __construct(Manager $manager,
204206 string $ description ,
205207 string $ password ,
206208 int $ activeGuests ,
209+ int $ callFlag ,
207210 \DateTime $ activeSince = null ,
208211 \DateTime $ lastActivity = null ,
209212 int $ lastMessageId ,
@@ -229,6 +232,7 @@ public function __construct(Manager $manager,
229232 $ this ->description = $ description ;
230233 $ this ->password = $ password ;
231234 $ this ->activeGuests = $ activeGuests ;
235+ $ this ->callFlag = $ callFlag ;
232236 $ this ->activeSince = $ activeSince ;
233237 $ this ->lastActivity = $ lastActivity ;
234238 $ this ->lastMessageId = $ lastMessageId ;
@@ -318,6 +322,10 @@ public function getActiveGuests(): int {
318322 return $ this ->activeGuests ;
319323 }
320324
325+ public function getCallFlag (): int {
326+ return $ this ->callFlag ;
327+ }
328+
321329 public function getActiveSince (): ?\DateTime {
322330 return $ this ->activeSince ;
323331 }
@@ -662,18 +670,32 @@ public function setLastActivity(\DateTime $now): bool {
662670
663671 /**
664672 * @param \DateTime $since
673+ * @param int $callFlag
665674 * @param bool $isGuest
666675 * @return bool
667676 */
668- public function setActiveSince (\DateTime $ since , bool $ isGuest ): bool {
677+ public function setActiveSince (\DateTime $ since , int $ callFlag , bool $ isGuest ): bool {
669678 if ($ isGuest && $ this ->getType () === self ::PUBLIC_CALL ) {
670679 $ query = $ this ->db ->getQueryBuilder ();
671680 $ query ->update ('talk_rooms ' )
672681 ->set ('active_guests ' , $ query ->createFunction ($ query ->getColumnName ('active_guests ' ) . ' + 1 ' ))
682+ ->set (
683+ 'call_flag ' ,
684+ $ query ->expr ()->bitwiseOr ('call_flag ' , $ callFlag )
685+ )
673686 ->where ($ query ->expr ()->eq ('id ' , $ query ->createNamedParameter ($ this ->getId (), IQueryBuilder::PARAM_INT )));
674687 $ query ->execute ();
675688
676689 $ this ->activeGuests ++;
690+ } elseif (!$ isGuest ) {
691+ $ query = $ this ->db ->getQueryBuilder ();
692+ $ query ->update ('talk_rooms ' )
693+ ->set (
694+ 'call_flag ' ,
695+ $ query ->expr ()->bitwiseOr ('call_flag ' , $ callFlag )
696+ )
697+ ->where ($ query ->expr ()->eq ('id ' , $ query ->createNamedParameter ($ this ->getId (), IQueryBuilder::PARAM_INT )));
698+ $ query ->execute ();
677699 }
678700
679701 if ($ this ->activeSince instanceof \DateTime) {
@@ -682,7 +704,7 @@ public function setActiveSince(\DateTime $since, bool $isGuest): bool {
682704
683705 $ query = $ this ->db ->getQueryBuilder ();
684706 $ query ->update ('talk_rooms ' )
685- ->set ('active_since ' , $ query ->createNamedParameter ($ since , ' datetime ' ))
707+ ->set ('active_since ' , $ query ->createNamedParameter ($ since , IQueryBuilder:: PARAM_DATE ))
686708 ->where ($ query ->expr ()->eq ('id ' , $ query ->createNamedParameter ($ this ->getId (), IQueryBuilder::PARAM_INT )))
687709 ->andWhere ($ query ->expr ()->isNull ('active_since ' ));
688710 $ query ->execute ();
@@ -703,8 +725,9 @@ public function setLastMessage(IComment $message): void {
703725 public function resetActiveSince (): bool {
704726 $ query = $ this ->db ->getQueryBuilder ();
705727 $ query ->update ('talk_rooms ' )
706- ->set ('active_guests ' , $ query ->createNamedParameter (0 ))
707- ->set ('active_since ' , $ query ->createNamedParameter (null , 'datetime ' ))
728+ ->set ('active_guests ' , $ query ->createNamedParameter (0 , IQueryBuilder::PARAM_INT ))
729+ ->set ('active_since ' , $ query ->createNamedParameter (null , IQueryBuilder::PARAM_DATE ))
730+ ->set ('call_flag ' , $ query ->createNamedParameter (0 , IQueryBuilder::PARAM_INT ))
708731 ->where ($ query ->expr ()->eq ('id ' , $ query ->createNamedParameter ($ this ->getId (), IQueryBuilder::PARAM_INT )))
709732 ->andWhere ($ query ->expr ()->isNotNull ('active_since ' ));
710733
0 commit comments