/**
  * Creates a new 'OwnerType' instance.
  *
  * @param StateMachineInterface $workflow_state_machine
  */
 public function __construct(StateMachineInterface $workflow_state_machine)
 {
     $this->workflow_state_machine = $workflow_state_machine;
     parent::__construct('Owner', [new \Trellis\Runtime\Attribute\Text\TextAttribute('name', $this, array('min_length' => 1, 'max_length' => 100)), new \Trellis\Runtime\Attribute\Email\EmailAttribute('email', $this, []), new \Trellis\Runtime\Attribute\Text\TextAttribute('password_hash', $this, array('min_length' => 60, 'max_length' => 60)), new \Trellis\Runtime\Attribute\Token\TokenAttribute('authorization_token', $this, array('min_length' => 20, 'max_length' => 20, 'default_value' => 'auto_gen')), new \Trellis\Runtime\Attribute\Timestamp\TimestampAttribute('authorization_expires', $this, []), new \Trellis\Runtime\Attribute\ImageList\ImageListAttribute('images', $this, [])], new Options(array('vendor' => 'HBDemo', 'package' => 'Commenting', 'projection' => 'Standard', 'is_hierarchical' => false)));
 }
 /**
  * Creates a new 'CommentType' instance.
  *
  * @param StateMachineInterface $workflow_state_machine
  */
 public function __construct(StateMachineInterface $workflow_state_machine)
 {
     $this->workflow_state_machine = $workflow_state_machine;
     parent::__construct('Comment', [new \Trellis\Runtime\Attribute\Text\TextAttribute('content', $this, []), new \Trellis\Runtime\Attribute\EntityReferenceList\EntityReferenceListAttribute('topic', $this, array('min_count' => 1, 'max_count' => 1, 'entity_types' => array('\\HBDemo\\Commenting\\Comment\\Projection\\Standard\\Reference\\TopicType'))), new \Trellis\Runtime\Attribute\EntityReferenceList\EntityReferenceListAttribute('owner', $this, array('min_count' => 1, 'max_count' => 1, 'entity_types' => array('\\HBDemo\\Commenting\\Comment\\Projection\\Standard\\Reference\\OwnerType')))], new Options(array('vendor' => 'HBDemo', 'package' => 'Commenting', 'projection' => 'Standard', 'is_hierarchical' => false)));
 }
 /**
  * Creates a new 'AccountType' instance.
  *
  * @param StateMachineInterface $workflow_state_machine
  */
 public function __construct(StateMachineInterface $workflow_state_machine)
 {
     $this->workflow_state_machine = $workflow_state_machine;
     parent::__construct('Account', [new \Trellis\Runtime\Attribute\Text\TextAttribute('name', $this, array('min_length' => 1, 'max_length' => 100)), new \Trellis\Runtime\Attribute\Token\TokenAttribute('account_token', $this, array('min_length' => 20, 'max_length' => 20, 'default_value' => 'auto_gen')), new \Trellis\Runtime\Attribute\EntityReferenceList\EntityReferenceListAttribute('owner', $this, array('min_count' => 1, 'max_count' => 1, 'entity_types' => array('\\HBDemo\\Commenting\\Account\\Projection\\Standard\\Reference\\OwnerType')))], new Options(array('vendor' => 'HBDemo', 'package' => 'Commenting', 'projection' => 'Standard', 'is_hierarchical' => false)));
 }
 /**
  * Creates a new 'UserType' instance.
  */
 public function __construct()
 {
     parent::__construct('User', [new \Trellis\Runtime\Attribute\Text\TextAttribute('username', $this, array('mandatory' => true, 'min_length' => 1, 'max_length' => 50)), new \Trellis\Runtime\Attribute\Email\EmailAttribute('email', $this, array('mandatory' => true)), new \Trellis\Runtime\Attribute\Choice\ChoiceAttribute('role', $this, array('mandatory' => true, 'min_length' => 1, 'max_length' => 255)), new \Trellis\Runtime\Attribute\Text\TextAttribute('firstname', $this, array('max_length' => 100)), new \Trellis\Runtime\Attribute\Text\TextAttribute('lastname', $this, array('max_length' => 100)), new \Trellis\Runtime\Attribute\Text\TextAttribute('password_hash', $this, array('min_length' => 50, 'max_length' => 100)), new \Trellis\Runtime\Attribute\ImageList\ImageListAttribute('background_images', $this, array('max_count' => 5)), new \Trellis\Runtime\Attribute\Text\TextAttribute('auth_token', $this, array('max_length' => 40)), new \Trellis\Runtime\Attribute\Timestamp\TimestampAttribute('token_expire_date', $this, array('format_native' => 'Y-m-d\\TH:i:s.uP'))], new Options(array('vendor' => 'Honeybee', 'package' => 'SystemAccount', 'is_hierarchical' => false)));
 }