Merge remote-tracking branch 'origin/master' into calendar/synchro-msgraph

This commit is contained in:
2022-05-28 00:30:02 +02:00
295 changed files with 4720 additions and 1727 deletions

View File

@@ -0,0 +1,70 @@
<?php
/**
* Chill is a software for social workers
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*/
declare(strict_types=1);
namespace Chill\MainBundle\Entity\Embeddable;
use Chill\MainBundle\Entity\User;
use Doctrine\ORM\Mapping as ORM;
use function array_key_exists;
/**
* @ORM\Embeddable
*/
class PrivateCommentEmbeddable
{
/**
* @ORM\Column(type="json", nullable=false, options={"default": "{}"})
*
* @var array<int, string>
*/
private array $comments = [];
public function getCommentForUser(User $user): string
{
return $this->comments[$user->getId()] ?? '';
}
public function getComments(): ?array
{
return $this->comments;
}
public function hasCommentForUser(User $user): bool
{
return array_key_exists($user->getId(), $this->comments)
&& '' !== $this->comments[$user->getId()];
}
public function merge(PrivateCommentEmbeddable $newComment): self
{
$currentComments = null === $this->getComments() ? [] : $this->getComments();
$mergedComments = $newComment->getComments() + $currentComments;
$this->setComments($mergedComments);
return $this;
}
public function setCommentForUser(User $user, string $content): self
{
$this->comments[$user->getId()] = trim($content);
return $this;
}
public function setComments($comments)
{
$this->comments = $comments;
return $this;
}
}

View File

@@ -47,6 +47,11 @@ class User implements AdvancedUserInterface
*/
private array $attributes = [];
/**
* @ORM\ManyToOne(targetEntity=Civility::class)
*/
private ?Civility $civility = null;
/**
* @ORM\ManyToOne(targetEntity=Location::class)
*/
@@ -184,6 +189,11 @@ class User implements AdvancedUserInterface
return $this->attributes;
}
public function getCivility(): ?Civility
{
return $this->civility;
}
public function getCurrentLocation(): ?Location
{
return $this->currentLocation;
@@ -361,6 +371,13 @@ class User implements AdvancedUserInterface
return $this;
}
public function setCivility(?Civility $civility): User
{
$this->civility = $civility;
return $this;
}
public function setCurrentLocation(?Location $currentLocation): User
{
$this->currentLocation = $currentLocation;