UserRelUser.php add constraints

pull/3924/head
Julio Montoya 4 years ago
parent 87af7deb3c
commit df6a1529d4
  1. 24
      src/CoreBundle/Entity/UserRelUser.php
  2. 4
      src/CoreBundle/Migrations/Schema/V200/Version20170626122900.php

@ -12,17 +12,26 @@ use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\SearchFilter;
use Chamilo\CoreBundle\Traits\TimestampableTypedEntity;
use Chamilo\CoreBundle\Traits\UserTrait;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Serializer\Annotation\Groups;
use Symfony\Component\Validator\Constraints as Assert;
/**
* Associations between users.
*
* @ORM\Table(name="user_rel_user", indexes={
* @ORM\Index(name="idx_user_rel_user__user", columns={"user_id"}),
* @ORM\Index(name="idx_user_rel_user__friend_user", columns={"friend_user_id"}),
* @ORM\Index(name="idx_user_rel_user__user_friend_user", columns={"user_id", "friend_user_id"})
* })
* @ORM\Table(name="user_rel_user",
* uniqueConstraints={
* @ORM\UniqueConstraint(
* name="user_friend_relation",
* columns={"user_id", "friend_user_id", "relation_type"}
* )
* },
* indexes={
* @ORM\Index(name="idx_user_rel_user__user", columns={"user_id"}),
* @ORM\Index(name="idx_user_rel_user__friend_user", columns={"friend_user_id"}),
* @ORM\Index(name="idx_user_rel_user__user_friend_user", columns={"user_id", "friend_user_id"})
* }
* )
* @ORM\Entity
*/
#[ApiResource(
@ -60,6 +69,11 @@ use Symfony\Component\Validator\Constraints as Assert;
'friend' => 'exact',
'relationType' => 'exact',
])]
#[UniqueEntity(
fields: ['user', 'friend', 'relationType'],
errorPath: 'User',
message: 'User relation already exists',
)]
class UserRelUser
{
use UserTrait;

@ -202,6 +202,10 @@ class Version20170626122900 extends AbstractMigrationChamilo
$this->addSql('UPDATE user_rel_user SET last_edit = NOW() WHERE last_edit IS NULL');
}
if (!$table->hasIndex('user_friend_relation')) {
$this->addSql('CREATE UNIQUE INDEX user_friend_relation ON user_rel_user (user_id, friend_user_id, relation_type)');
}
if (!$table->hasColumn('created_at')) {
$this->addSql("ALTER TABLE user_rel_user ADD created_at DATETIME NOT NULL COMMENT '(DC2Type:datetime)");
$this->addSql('UPDATE user_rel_user SET created_at = last_edit');

Loading…
Cancel
Save