Added Doctrine annotations

This commit is contained in:
Andrey
2013-07-31 13:26:06 +02:00
parent 0b78191076
commit d788ac91f8
6 changed files with 116 additions and 46 deletions

View File

@@ -11,23 +11,29 @@
namespace Entities; namespace Entities;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
/** /**
* AggregateToken * @ORM\Table(name="AggregateTokens")
* @ORM\Entity(repositoryClass="Repositories\AggregateTokenRepository")
*/ */
class AggregateToken class AggregateToken
{ {
/** /**
* @var integer * @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue
*/ */
private $id; private $id;
/** /**
* @var integer * @ORM\Column(type="integer")
*/ */
private $usr_id; private $usr_id;
/** /**
* @var string * @ORM\Column(type="string", length=128)
*/ */
private $value; private $value;

View File

@@ -13,64 +13,84 @@ namespace Entities;
use Alchemy\Phrasea\Application; use Alchemy\Phrasea\Application;
use Alchemy\Phrasea\Feed\FeedInterface; use Alchemy\Phrasea\Feed\FeedInterface;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
/** /**
* Feed * @ORM\Table(name="Feeds")
* @ORM\Entity(repositoryClass="Repositories\FeedRepository")
*/ */
class Feed implements FeedInterface class Feed implements FeedInterface
{ {
/** /**
* @var integer * @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue
*/ */
private $id; private $id;
/** /**
* @var boolean * @ORM\Column(type="boolean")
*/ */
private $public = false; private $public = false;
/** /**
* @var boolean * @ORM\Column(type="boolean")
*/ */
private $icon_url = false; private $icon_url = false;
/** /**
* @var integer * @ORM\Column(type="integer")
*/ */
private $base_id; private $base_id;
/** /**
* @var string * @ORM\Column(type="string", length=128)
*/ */
private $title; private $title;
/** /**
* @var string * @ORM\Column(type="string", length=128)
*/ */
private $subtitle; private $subtitle;
/** /**
* @var \DateTime * @Gedmo\Timestampable(on="create")
* @ORM\Column(type="datetime")
*/ */
private $created_on; private $created_on;
/** /**
* @var \DateTime * @Gedmo\Timestampable(on="update")
* @ORM\Column(type="datetime")
*/ */
private $updated_on; private $updated_on;
/** /**
* @var \Doctrine\Common\Collections\Collection * @ORM\OneToMany(
* targetEntity="FeedPublisher",
* mappedBy="feed",
* cascade=["ALL"]
* )
*/ */
private $publishers; private $publishers;
/** /**
* @var \Doctrine\Common\Collections\Collection * @ORM\OneToMany(
* targetEntity="FeedEntry",
* mappedBy="feed",
* cascade=["ALL"]
* )
* @ORM\OrderBy({"created_on" = "ASC"})
*/ */
private $entries; private $entries;
/** /**
* @var \Doctrine\Common\Collections\Collection * @ORM\OneToMany(
* targetEntity="FeedToken",
* mappedBy="feed",
* cascade=["ALL"]
* )
*/ */
private $tokens; private $tokens;

View File

@@ -11,58 +11,73 @@
namespace Entities; namespace Entities;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
/** /**
* FeedEntry * @ORM\Table(name="FeedEntries")
* @ORM\Entity(repositoryClass="Repositories\FeedEntryRepository")
*/ */
class FeedEntry class FeedEntry
{ {
/** /**
* @var integer * @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue
*/ */
private $id; private $id;
/** /**
* @var string * @ORM\Column(type="string", length=128)
*/ */
private $title; private $title;
/** /**
* @var string * @ORM\Column(type="string", length=128)
*/ */
private $subtitle; private $subtitle;
/** /**
* @var string * @ORM\Column(type="string", length=128)
*/ */
private $author_name; private $author_name;
/** /**
* @var string * @ORM\Column(type="string", length=128)
*/ */
private $author_email; private $author_email;
/** /**
* @var \DateTime * @Gedmo\Timestampable(on="create")
* @ORM\Column(type="datetime")
*/ */
private $created_on; private $created_on;
/** /**
* @var \DateTime * @Gedmo\Timestampable(on="update")
* @ORM\Column(type="datetime")
*/ */
private $updated_on; private $updated_on;
/** /**
* @var \Doctrine\Common\Collections\Collection * @ORM\OneToMany(
* targetEntity="FeedItem",
* mappedBy="entry",
* cascade=["ALL"]
* )
* @ORM\OrderBy({"ord" = "ASC"})
*/ */
private $items; private $items;
/** /**
* @var \Entities\FeedPublisher * @ORM\ManyToOne(targetEntity="FeedPublisher", cascade={"persist"})
* @ORM\JoinColumn(name="publisher_id", referencedColumnName="id")
*/ */
private $publisher; private $publisher;
/** /**
* @var \Entities\Feed * @ORM\ManyToOne(targetEntity="Feed", inversedBy="entries", cascade={"persist"})
* @ORM\JoinColumn(name="feed_id", referencedColumnName="id")
*/ */
private $feed; private $feed;

View File

@@ -13,38 +13,50 @@ namespace Entities;
use Alchemy\Phrasea\Application; use Alchemy\Phrasea\Application;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
/** /**
* FeedItem * @ORM\Table(name="FeedItems", uniqueConstraints={@ORM\UniqueConstraint(name="lookup_unique_idx", columns={
* "entry_id","sbas_id","record_id"
* }})
* @ORM\Entity(repositoryClass="Repositories\FeedItemRepository")
* @HasLifecycleCallbacks
*/ */
class FeedItem class FeedItem
{ {
/** /**
* @var integer * @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue
*/ */
private $id; private $id;
/** /**
* @var integer * @ORM\Column(type="integer")
*/ */
private $record_id; private $record_id;
/** /**
* @var integer * @ORM\Column(type="integer")
*/ */
private $sbas_id; private $sbas_id;
/** /**
* @var \DateTime * @Gedmo\Timestampable(on="create")
* @ORM\Column(type="datetime")
*/ */
private $created_on; private $created_on;
/** /**
* @var \DateTime * @Gedmo\Timestampable(on="update")
* @ORM\Column(type="datetime")
*/ */
private $updated_on; private $updated_on;
/** /**
* @var \Entities\FeedEntry * @ORM\ManyToOne(targetEntity="FeedEntry", inversedBy="items", cascade={"persist"})
* @ORM\JoinColumn(name="items", referencedColumnName="id")
*/ */
private $entry; private $entry;
@@ -201,7 +213,7 @@ class FeedItem
} }
/** /**
* Marks this item as the last added. * @PrePersist
*/ */
public function setLastInFeedItem() public function setLastInFeedItem()
{ {

View File

@@ -12,34 +12,41 @@
namespace Entities; namespace Entities;
use Alchemy\Phrasea\Application; use Alchemy\Phrasea\Application;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
/** /**
* FeedPublisher * @ORM\Table(name="FeedPublishers")
* @ORM\Entity(repositoryClass="Repositories\FeedPublisherRepository")
*/ */
class FeedPublisher class FeedPublisher
{ {
/** /**
* @var integer * @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue
*/ */
private $id; private $id;
/** /**
* @var integer * @ORM\Column(type="integer")
*/ */
private $usr_id; private $usr_id;
/** /**
* @var boolean * @ORM\Column(type="boolean")
*/ */
private $owner = false; private $owner = false;
/** /**
* @var \DateTime * @Gedmo\Timestampable(on="create")
* @ORM\Column(type="datetime")
*/ */
private $created_on; private $created_on;
/** /**
* @var \Entities\Feed * @ORM\ManyToOne(targetEntity="Feed", inversedBy="publishers", cascade={"persist"})
* @ORM\JoinColumn(name="feed_id", referencedColumnName="id")
*/ */
private $feed; private $feed;

View File

@@ -11,20 +11,30 @@
namespace Entities; namespace Entities;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
/**
* @ORM\Table(name="FeedTokens")
* @ORM\Entity(repositoryClass="Repositories\FeedTokenRepository")
*/
class FeedToken class FeedToken
{ {
/** /**
* @var integer * @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue
*/ */
private $id; private $id;
/** /**
* @var integer * @ORM\Column(type="integer")
*/ */
private $usr_id; private $usr_id;
/** /**
* @var \Entities\Feed * @ORM\ManyToOne(targetEntity="Feed", inversedBy="tokens", cascade={"persist"})
* @ORM\JoinColumn(name="feed_id", referencedColumnName="id")
*/ */
private $feed; private $feed;
@@ -84,7 +94,7 @@ class FeedToken
return $this->feed; return $this->feed;
} }
/** /**
* @var string * @ORM\Column(type="string", length=128)
*/ */
private $value; private $value;