namespace Wallabag\CoreBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
+use JMS\Serializer\Annotation\Exclude;
+use JMS\Serializer\Annotation\Groups;
+use JMS\Serializer\Annotation\XmlRoot;
+use Symfony\Bridge\RulerZ\Validator\Constraints as RulerZAssert;
use Symfony\Component\Validator\Constraints as Assert;
-use KPhoen\RulerZBundle\Validator\Constraints as RulerZAssert;
/**
- * Config.
+ * Tagging rule.
*
+ * @XmlRoot("tagging_rule")
* @ORM\Entity(repositoryClass="Wallabag\CoreBundle\Repository\TaggingRuleRepository")
- * @ORM\Table
+ * @ORM\Table(name="`tagging_rule`")
* @ORM\Entity
*/
-class TaggingRule
+class TaggingRule implements RuleInterface
{
/**
* @var int
* @var string
*
* @Assert\NotBlank()
- * @RulerZAssert\ValidRule(allowed_variables={"title", "url", "isArchived", "isStared", "content", "language", "mimetype", "readingTime", "domainName"})
+ * @Assert\Length(max=255)
+ * @RulerZAssert\ValidRule(
+ * allowed_variables={"title", "url", "isArchived", "isStared", "content", "language", "mimetype", "readingTime", "domainName"},
+ * allowed_operators={">", "<", ">=", "<=", "=", "is", "!=", "and", "not", "or", "matches", "notmatches"}
+ * )
* @ORM\Column(name="rule", type="string", nullable=false)
+ *
+ * @Groups({"export_tagging_rule"})
*/
private $rule;
*
* @Assert\NotBlank()
* @ORM\Column(name="tags", type="simple_array", nullable=false)
+ *
+ * @Groups({"export_tagging_rule"})
*/
private $tags = [];
/**
+ * @Exclude
+ *
* @ORM\ManyToOne(targetEntity="Wallabag\CoreBundle\Entity\Config", inversedBy="taggingRules")
*/
private $config;
/**
* Set tags.
*
- * @param array<string> $tags
+ * @param array <string> $tags
*
* @return TaggingRule
*/
/**
* Set config.
*
- * @param Config $config
- *
* @return TaggingRule
*/
public function setConfig(Config $config)