/** * @param ORM\ClassMetadata $metadata */ public static function loadMetadata(ORM\ClassMetadata $metadata) { $builder = new ClassMetadataBuilder($metadata); $builder->setTable('roles')->setCustomRepositoryClass('Mautic\\UserBundle\\Entity\\RoleRepository'); $builder->addIdColumns(); $builder->createField('isAdmin', 'boolean')->columnName('is_admin')->build(); $builder->createOneToMany('permissions', 'Permission')->orphanRemoval()->mappedBy('role')->cascadePersist()->cascadeRemove()->fetchExtraLazy()->build(); $builder->createField('rawPermissions', 'array')->columnName('readable_permissions')->build(); $builder->createOneToMany('users', 'User')->mappedBy('role')->fetchExtraLazy()->build(); }
/** * @param ClassMetadata $builder * @param $entityClass */ protected static function addVariantMetadata(ClassMetadataBuilder $builder, $entityClass) { $builder->createManyToOne('variantParent', $entityClass)->inversedBy('variantChildren')->addJoinColumn('variant_parent_id', 'id', true, false, 'CASCADE')->build(); $builder->createOneToMany('variantChildren', $entityClass)->setIndexBy('id')->setOrderBy(['isPublished' => 'DESC'])->mappedBy('variantParent')->build(); $builder->createField('variantSettings', 'array')->columnName('variant_settings')->nullable()->build(); $builder->createField('variantStartDate', 'datetime')->columnName('variant_start_date')->nullable()->build(); }
/** * @param ORM\ClassMetadata $metadata */ public static function loadMetadata(ORM\ClassMetadata $metadata) { $builder = new ClassMetadataBuilder($metadata); $builder->setTable('webhooks')->setCustomRepositoryClass('Mautic\\WebhookBundle\\Entity\\WebhookRepository'); // id columns $builder->addIdColumns(); // categories $builder->addCategory(); // 1:M for events $builder->createOneToMany('events', 'Event')->orphanRemoval()->setIndexBy('event_type')->mappedBy('webhook')->cascadePersist()->build(); // 1:M for queues $builder->createOneToMany('queues', 'WebhookQueue')->mappedBy('webhook')->fetchExtraLazy()->cascadePersist()->build(); // 1:M for logs $builder->createOneToMany('logs', 'Log')->setOrderBy(['dateAdded' => 'DESC'])->fetchExtraLazy()->mappedBy('webhook')->cascadePersist()->build(); // status code $builder->createField('webhookUrl', 'string')->columnName('webhook_url')->length(255)->build(); }
/** * @param ORM\ClassMetadata $metadata */ public static function loadMetadata(ORM\ClassMetadata $metadata) { $builder = new ClassMetadataBuilder($metadata); $builder->setTable('lead_lists')->setCustomRepositoryClass('Mautic\\LeadBundle\\Entity\\LeadListRepository'); $builder->addIdColumns(); $builder->addField('alias', 'string'); $builder->addField('filters', 'array'); $builder->createField('isGlobal', 'boolean')->columnName('is_global')->build(); $builder->createOneToMany('leads', 'ListLead')->setIndexBy('id')->mappedBy('list')->fetchExtraLazy()->build(); }
/** * @param ORM\ClassMetadata $metadata */ public static function loadMetadata(ORM\ClassMetadata $metadata) { $builder = new ClassMetadataBuilder($metadata); $builder->setTable('stages')->setCustomRepositoryClass('Mautic\\StageBundle\\Entity\\StageRepository'); $builder->addIdColumns(); $builder->createField('weight', 'integer')->build(); $builder->addPublishDates(); $builder->createOneToMany('log', 'LeadStageLog')->mappedBy('stage')->cascadePersist()->cascadeRemove()->fetchExtraLazy()->build(); $builder->addCategory(); }
/** * @param ORM\ClassMetadata $metadata */ public static function loadMetadata(ORM\ClassMetadata $metadata) { $builder = new ClassMetadataBuilder($metadata); $builder->setTable('oauth1_consumers')->setCustomRepositoryClass('Mautic\\ApiBundle\\Entity\\oAuth1\\ConsumerRepository')->addLifecycleEvent('createConsumerKeys', 'prePersist')->addIndex(array('consumer_key'), 'consumer_search'); $builder->addIdColumns('name', false); $builder->createField('consumerKey', 'string')->columnName('consumer_key')->build(); $builder->createField('consumerSecret', 'string')->columnName('consumer_secret')->build(); $builder->addField('callback', 'string'); $builder->createOneToMany('accessTokens', 'AccessToken')->setIndexBy('id')->mappedBy('consumer')->fetchExtraLazy()->build(); }
/** * @param ORM\ClassMetadata $metadata */ public static function loadMetadata(ORM\ClassMetadata $metadata) { $builder = new ClassMetadataBuilder($metadata); $builder->setTable('page_redirects')->setCustomRepositoryClass('Mautic\\PageBundle\\Entity\\RedirectRepository'); $builder->addId(); $builder->createField('redirectId', 'string')->columnName('redirect_id')->length(25)->build(); $builder->addField('url', 'text'); $builder->addField('hits', 'integer'); $builder->createField('uniqueHits', 'integer')->columnName('unique_hits')->build(); $builder->createOneToMany('trackables', 'Trackable')->mappedBy('redirect')->fetchExtraLazy()->build(); }
/** * @param ORM\ClassMetadata $metadata */ public static function loadMetadata(ORM\ClassMetadata $metadata) { $builder = new ClassMetadataBuilder($metadata); $builder->setTable('plugins')->setCustomRepositoryClass('Mautic\\PluginBundle\\Entity\\PluginRepository')->addUniqueConstraint(['bundle'], 'unique_bundle'); $builder->addIdColumns(); $builder->createField('isMissing', 'boolean')->columnName('is_missing')->build(); $builder->createField('bundle', 'string')->length(50)->build(); $builder->createField('version', 'string')->nullable()->build(); $builder->createField('author', 'string')->nullable()->build(); $builder->createOneToMany('integrations', 'Integration')->setIndexBy('id')->mappedBy('plugin')->fetchExtraLazy()->build(); }
/** * @param ORM\ClassMetadata $metadata */ public static function loadMetadata(ORM\ClassMetadata $metadata) { $builder = new ClassMetadataBuilder($metadata); $builder->setTable('point_trigger_events')->setCustomRepositoryClass('Mautic\\PointBundle\\Entity\\TriggerEventRepository')->addIndex(['type'], 'trigger_type_search'); $builder->addIdColumns(); $builder->createField('type', 'string')->length(50)->build(); $builder->createField('order', 'integer')->columnName('action_order')->build(); $builder->addField('properties', 'array'); $builder->createManyToOne('trigger', 'Trigger')->inversedBy('events')->addJoinColumn('trigger_id', 'id', false, false, 'CASCADE')->build(); $builder->createOneToMany('log', 'LeadTriggerLog')->mappedBy('event')->cascadePersist()->cascadeRemove()->fetchExtraLazy()->build(); }
/** * @param ORM\ClassMetadata $metadata */ public static function loadMetadata(ORM\ClassMetadata $metadata) { $builder = new ClassMetadataBuilder($metadata); $builder->setTable('webhook_events')->setCustomRepositoryClass('Mautic\\WebhookBundle\\Entity\\EventRepository'); // id columns $builder->addId(); // M:1 for webhook $builder->createManyToOne('webhook', 'Webhook')->inversedBy('events')->addJoinColumn('webhook_id', 'id', false, false, 'CASCADE')->build(); // 1:M for queues $builder->createOneToMany('queues', 'WebhookQueue')->mappedBy('event')->build(); // event type field $builder->createField('event_type', 'string')->columnName('event_type')->length(50)->build(); }
/** * @param ORM\ClassMetadata $metadata */ public static function loadMetadata(ORM\ClassMetadata $metadata) { $builder = new ClassMetadataBuilder($metadata); $builder->setTable('push_notifications')->setCustomRepositoryClass('Mautic\\NotificationBundle\\Entity\\NotificationRepository'); $builder->addIdColumns(); $builder->createField('language', 'string')->columnName('lang')->build(); $builder->createField('url', 'text')->nullable()->build(); $builder->createField('heading', 'text')->build(); $builder->createField('message', 'text')->build(); $builder->createField('notificationType', 'text')->columnName('notification_type')->nullable()->build(); $builder->addPublishDates(); $builder->createField('readCount', 'integer')->columnName('read_count')->build(); $builder->createField('sentCount', 'integer')->columnName('sent_count')->build(); $builder->addCategory(); $builder->createManyToMany('lists', 'Mautic\\LeadBundle\\Entity\\LeadList')->setJoinTable('push_notification_list_xref')->setIndexBy('id')->addInverseJoinColumn('leadlist_id', 'id', false, false, 'CASCADE')->addJoinColumn('notification_id', 'id', false, false, 'CASCADE')->fetchExtraLazy()->build(); $builder->createOneToMany('stats', 'Stat')->setIndexBy('id')->mappedBy('notification')->cascadePersist()->fetchExtraLazy()->build(); }
/** * @param ORM\ClassMetadata $metadata */ public static function loadMetadata(ORM\ClassMetadata $metadata) { $builder = new ClassMetadataBuilder($metadata); $builder->setTable('campaigns')->setCustomRepositoryClass('Mautic\\CampaignBundle\\Entity\\CampaignRepository'); $builder->addIdColumns(); $builder->addPublishDates(); $builder->addCategory(); $builder->createOneToMany('events', 'Event')->setIndexBy('id')->setOrderBy(['order' => 'ASC'])->mappedBy('campaign')->cascadeAll()->fetchExtraLazy()->build(); $builder->createOneToMany('leads', 'Lead')->setIndexBy('id')->mappedBy('campaign')->fetchExtraLazy()->build(); $builder->createManyToMany('lists', 'Mautic\\LeadBundle\\Entity\\LeadList')->setJoinTable('campaign_leadlist_xref')->setIndexBy('id')->addInverseJoinColumn('leadlist_id', 'id', false, false, 'CASCADE')->addJoinColumn('campaign_id', 'id', true, false, 'CASCADE')->build(); $builder->createManyToMany('forms', 'Mautic\\FormBundle\\Entity\\Form')->setJoinTable('campaign_form_xref')->setIndexBy('id')->addInverseJoinColumn('form_id', 'id', false, false, 'CASCADE')->addJoinColumn('campaign_id', 'id', true, false, 'CASCADE')->build(); $builder->createField('canvasSettings', 'array')->columnName('canvas_settings')->nullable()->build(); }
/** * @param ORM\ClassMetadata $metadata */ public static function loadMetadata(ORM\ClassMetadata $metadata) { $builder = new ClassMetadataBuilder($metadata); $builder->setTable('point_triggers')->setCustomRepositoryClass('Mautic\\PointBundle\\Entity\\TriggerRepository'); $builder->addIdColumns(); $builder->addPublishDates(); $builder->addField('points', 'integer'); $builder->createField('color', 'string')->length(7)->build(); $builder->createField('triggerExistingLeads', 'boolean')->columnName('trigger_existing_leads')->build(); $builder->addCategory(); $builder->createOneToMany('events', 'TriggerEvent')->setIndexBy('id')->setOrderBy(array('order' => 'ASC'))->mappedBy('trigger')->cascadeAll()->fetchExtraLazy()->build(); }
/** * @param ORM\ClassMetadata $metadata */ public static function loadMetadata(ORM\ClassMetadata $metadata) { $builder = new ClassMetadataBuilder($metadata); $builder->setTable('points')->setCustomRepositoryClass('Mautic\\PointBundle\\Entity\\PointRepository')->addIndex(array('type'), 'point_type_search'); $builder->addIdColumns(); $builder->createField('type', 'string')->length(50)->build(); $builder->addPublishDates(); $builder->addField('delta', 'integer'); $builder->addField('properties', 'array'); $builder->createOneToMany('log', 'LeadPointLog')->mappedBy('point')->cascadePersist()->cascadeRemove()->fetchExtraLazy()->build(); $builder->addCategory(); }
/** * @param ORM\ClassMetadata $metadata */ public static function loadMetadata(ORM\ClassMetadata $metadata) { $builder = new ClassMetadataBuilder($metadata); $builder->setTable('leads')->setCustomRepositoryClass('Mautic\\LeadBundle\\Entity\\LeadRepository')->addLifecycleEvent('checkDateIdentified', 'preUpdate')->addLifecycleEvent('checkDateIdentified', 'prePersist')->addLifecycleEvent('checkAttributionDate', 'preUpdate')->addLifecycleEvent('checkAttributionDate', 'prePersist')->addIndex(['date_added'], 'lead_date_added'); $builder->createField('id', 'integer')->isPrimaryKey()->generatedValue()->build(); $builder->createManyToOne('owner', 'Mautic\\UserBundle\\Entity\\User')->addJoinColumn('owner_id', 'id', true, false, 'SET NULL')->build(); $builder->createField('points', 'integer')->build(); $builder->createOneToMany('pointsChangeLog', 'PointsChangeLog')->orphanRemoval()->setOrderBy(['dateAdded' => 'DESC'])->mappedBy('lead')->cascadeAll()->fetchExtraLazy()->build(); $builder->createOneToMany('companyChangeLog', 'CompanyChangeLog')->orphanRemoval()->setOrderBy(['dateAdded' => 'DESC'])->mappedBy('lead')->cascadeAll()->fetchExtraLazy()->build(); $builder->createOneToMany('doNotContact', 'Mautic\\LeadBundle\\Entity\\DoNotContact')->orphanRemoval()->mappedBy('lead')->cascadePersist()->fetchExtraLazy()->build(); $builder->createManyToMany('ipAddresses', 'Mautic\\CoreBundle\\Entity\\IpAddress')->setJoinTable('lead_ips_xref')->addInverseJoinColumn('ip_id', 'id', false)->addJoinColumn('lead_id', 'id', false, false, 'CASCADE')->setIndexBy('ipAddress')->cascadeMerge()->cascadePersist()->cascadeDetach()->build(); $builder->createOneToMany('pushIds', 'Mautic\\NotificationBundle\\Entity\\PushID')->orphanRemoval()->mappedBy('lead')->cascadeAll()->fetchExtraLazy()->build(); $builder->createField('lastActive', 'datetime')->columnName('last_active')->nullable()->build(); $builder->createField('internal', 'array')->nullable()->build(); $builder->createField('socialCache', 'array')->columnName('social_cache')->nullable()->build(); $builder->createField('dateIdentified', 'datetime')->columnName('date_identified')->nullable()->build(); $builder->createOneToMany('notes', 'LeadNote')->orphanRemoval()->setOrderBy(['dateAdded' => 'DESC'])->mappedBy('lead')->fetchExtraLazy()->build(); $builder->createField('preferredProfileImage', 'string')->columnName('preferred_profile_image')->nullable()->build(); $builder->createManyToMany('tags', 'Mautic\\LeadBundle\\Entity\\Tag')->setJoinTable('lead_tags_xref')->addInverseJoinColumn('tag_id', 'id', false)->addJoinColumn('lead_id', 'id', false, false, 'CASCADE')->setOrderBy(['tag' => 'ASC'])->setIndexBy('tag')->fetchLazy()->cascadeMerge()->cascadePersist()->cascadeDetach()->build(); $builder->createManyToOne('stage', 'Mautic\\StageBundle\\Entity\\Stage')->cascadePersist()->cascadeMerge()->addJoinColumn('stage_id', 'id', true, false, 'SET NULL')->build(); $builder->createOneToMany('stageChangeLog', 'StagesChangeLog')->orphanRemoval()->setOrderBy(['dateAdded' => 'DESC'])->mappedBy('lead')->cascadeAll()->fetchExtraLazy()->build(); $builder->createOneToMany('utmtags', 'Mautic\\LeadBundle\\Entity\\UtmTag')->orphanRemoval()->mappedBy('lead')->cascadeAll()->fetchExtraLazy()->build(); $builder->createOneToMany('frequencyRules', 'Mautic\\LeadBundle\\Entity\\FrequencyRule')->orphanRemoval()->setIndexBy('channel')->setOrderBy(['dateAdded' => 'DESC'])->mappedBy('lead')->cascadeAll()->fetchExtraLazy()->build(); }
/** * @param ORM\ClassMetadata $metadata */ public static function loadMetadata(ORM\ClassMetadata $metadata) { $builder = new ClassMetadataBuilder($metadata); $builder->setTable('campaign_events')->setCustomRepositoryClass('Mautic\\CampaignBundle\\Entity\\EventRepository')->addIndex(array('type', 'event_type'), 'campaign_event_type_search'); $builder->addIdColumns(); $builder->createField('type', 'string')->length(50)->build(); $builder->createField('eventType', 'string')->columnName('event_type')->length(50)->build(); $builder->createField('order', 'integer')->columnName('event_order')->build(); $builder->addField('properties', 'array'); $builder->createField('triggerDate', 'datetime')->columnName('trigger_date')->nullable()->build(); $builder->createField('triggerInterval', 'integer')->columnName('trigger_interval')->nullable()->build(); $builder->createField('triggerIntervalUnit', 'string')->columnName('trigger_interval_unit')->length(1)->nullable()->build(); $builder->createField('triggerMode', 'string')->columnName('trigger_mode')->length(10)->nullable()->build(); $builder->createManyToOne('campaign', 'Campaign')->inversedBy('events')->addJoinColumn('campaign_id', 'id', false, false, 'CASCADE')->build(); $builder->createOneToMany('children', 'Event')->setIndexBy('id')->setOrderBy(array('order' => 'ASC'))->mappedBy('parent')->build(); $builder->createManyToOne('parent', 'Event')->inversedBy('children')->cascadePersist()->addJoinColumn('parent_id', 'id')->build(); $builder->createField('decisionPath', 'string')->columnName('decision_path')->nullable()->build(); $builder->createField('tempId', 'string')->columnName('temp_id')->nullable()->build(); $builder->createOneToMany('log', 'LeadEventLog')->mappedBy('event')->cascadePersist()->cascadeRemove()->fetchExtraLazy()->build(); }
/** * @param ClassMetadata $builder * @param $entityClass * @param string $languageColumnName */ protected static function addTranslationMetadata(ClassMetadataBuilder $builder, $entityClass, $languageColumnName = 'lang') { $builder->createOneToMany('translationChildren', $entityClass)->setIndexBy('id')->setOrderBy(['isPublished' => 'DESC'])->mappedBy('translationParent')->build(); $builder->createManyToOne('translationParent', $entityClass)->inversedBy('translationChildren')->addJoinColumn('translation_parent_id', 'id', true, false, 'CASCADE')->build(); $builder->createField('language', 'string')->columnName($languageColumnName)->build(); }
/** * @param ORM\ClassMetadata $metadata */ public static function loadMetadata(ORM\ClassMetadata $metadata) { $builder = new ClassMetadataBuilder($metadata); $builder->setTable('pages')->setCustomRepositoryClass('Mautic\\PageBundle\\Entity\\PageRepository')->addIndex(array('alias'), 'page_alias_search'); $builder->addId(); $builder->addField('title', 'string'); $builder->addField('alias', 'string'); $builder->addNullableField('template', 'string'); $builder->createField('language', 'string')->columnName('lang')->build(); $builder->createField('customHtml', 'text')->columnName('custom_html')->nullable()->build(); $builder->createField('content', 'array')->nullable()->build(); $builder->addPublishDates(); $builder->addField('hits', 'integer'); $builder->createField('uniqueHits', 'integer')->columnName('unique_hits')->build(); $builder->createField('variantHits', 'integer')->columnName('variant_hits')->build(); $builder->addField('revision', 'integer'); $builder->createField('metaDescription', 'string')->columnName('meta_description')->nullable()->build(); $builder->createField('redirectType', 'string')->columnName('redirect_type')->nullable()->length(100)->build(); $builder->createField('redirectUrl', 'string')->columnName('redirect_url')->nullable()->length(100)->build(); $builder->addCategory(); $builder->createOneToMany('translationChildren', 'Page')->setIndexBy('id')->setOrderBy(array('isPublished' => 'DESC'))->mappedBy('translationParent')->build(); $builder->createManyToOne('translationParent', 'Page')->inversedBy('translationChildren')->addJoinColumn('translation_parent_id', 'id', true)->build(); $builder->createManyToOne('variantParent', 'Page')->inversedBy('variantChildren')->addJoinColumn('variant_parent_id', 'id', true)->build(); $builder->createOneToMany('variantChildren', 'Page')->setIndexBy('id')->setOrderBy(array('isPublished' => 'DESC'))->mappedBy('variantParent')->build(); $builder->createField('variantSettings', 'array')->columnName('variant_settings')->nullable()->build(); $builder->createField('variantStartDate', 'datetime')->columnName('variant_start_date')->nullable()->build(); }
/** * @param ORM\ClassMetadata $metadata */ public static function loadMetadata(ORM\ClassMetadata $metadata) { $builder = new ClassMetadataBuilder($metadata); $builder->setTable('emails')->setCustomRepositoryClass('Mautic\\EmailBundle\\Entity\\EmailRepository'); $builder->addIdColumns(); $builder->createField('subject', 'text')->nullable()->build(); $builder->createField('fromAddress', 'string')->columnName('from_address')->nullable()->build(); $builder->createField('fromName', 'string')->columnName('from_name')->nullable()->build(); $builder->createField('replyToAddress', 'string')->columnName('reply_to_address')->nullable()->build(); $builder->createField('bccAddress', 'string')->columnName('bcc_address')->nullable()->build(); $builder->createField('template', 'string')->nullable()->build(); $builder->createField('language', 'string')->columnName('lang')->build(); $builder->createField('content', 'array')->nullable()->build(); $builder->createField('plainText', 'text')->columnName('plain_text')->nullable()->build(); $builder->createField('customHtml', 'text')->columnName('custom_html')->nullable()->build(); $builder->createField('emailType', 'text')->columnName('email_type')->nullable()->build(); $builder->addPublishDates(); $builder->createField('readCount', 'integer')->columnName('read_count')->build(); $builder->createField('sentCount', 'integer')->columnName('sent_count')->build(); $builder->addField('revision', 'integer'); $builder->addCategory(); $builder->createManyToMany('lists', 'Mautic\\LeadBundle\\Entity\\LeadList')->setJoinTable('email_list_xref')->setIndexBy('id')->addInverseJoinColumn('leadlist_id', 'id', false, false, 'CASCADE')->addJoinColumn('email_id', 'id', false, false, 'CASCADE')->fetchExtraLazy()->build(); $builder->createOneToMany('stats', 'Stat')->setIndexBy('id')->mappedBy('email')->cascadePersist()->fetchExtraLazy()->build(); $builder->createManyToOne('variantParent', 'Email')->inversedBy('variantChildren')->addJoinColumn('variant_parent_id', 'id')->build(); $builder->createOneToMany('variantChildren', 'Email')->setIndexBy('id')->mappedBy('variantParent')->fetchLazy()->build(); $builder->createField('variantSettings', 'array')->columnName('variant_settings')->nullable()->build(); $builder->createField('variantStartDate', 'datetime')->columnName('variant_start_date')->nullable()->build(); $builder->createField('variantSentCount', 'integer')->columnName('variant_sent_count')->build(); $builder->createField('variantReadCount', 'integer')->columnName('variant_read_count')->build(); $builder->createManyToOne('unsubscribeForm', 'Mautic\\FormBundle\\Entity\\Form')->addJoinColumn('unsubscribeform_id', 'id', true, false, 'SET NULL')->build(); $builder->createManyToMany('assetAttachments', 'Mautic\\AssetBundle\\Entity\\Asset')->setJoinTable('email_assets_xref')->addInverseJoinColumn('asset_id', 'id', false, false, 'CASCADE')->addJoinColumn('email_id', 'id', false, false, 'CASCADE')->fetchExtraLazy()->build(); }
/** * @param ORM\ClassMetadata $metadata */ public static function loadMetadata(ORM\ClassMetadata $metadata) { $builder = new ClassMetadataBuilder($metadata); $builder->setTable('dynamic_content')->setCustomRepositoryClass('Mautic\\DynamicContentBundle\\Entity\\DynamicContentRepository'); $builder->addIdColumns(); $builder->addCategory(); $builder->addPublishDates(); $builder->createField('sentCount', 'integer')->columnName('sent_count')->build(); $builder->createField('content', 'text')->columnName('content')->nullable()->build(); $builder->createOneToMany('stats', 'Stat')->setIndexBy('id')->mappedBy('dynamicContent')->cascadePersist()->fetchExtraLazy()->build(); self::addTranslationMetadata($builder, self::class); self::addVariantMetadata($builder, self::class); }
/** * @param ORM\ClassMetadata $metadata */ public static function loadMetadata(ORM\ClassMetadata $metadata) { $builder = new ClassMetadataBuilder($metadata); $builder->setTable('forms')->setCustomRepositoryClass('Mautic\\FormBundle\\Entity\\FormRepository'); $builder->addIdColumns(); $builder->addField('alias', 'string'); $builder->addCategory(); $builder->createField('cachedHtml', 'text')->columnName('cached_html')->nullable()->build(); $builder->createField('postAction', 'string')->columnName('post_action')->build(); $builder->createField('postActionProperty', 'string')->columnName('post_action_property')->nullable()->build(); $builder->addPublishDates(); $builder->createOneToMany('fields', 'Field')->setIndexBy('id')->setOrderBy(array('order' => 'ASC'))->mappedBy('form')->cascadeAll()->fetchExtraLazy()->build(); $builder->createOneToMany('actions', 'Action')->setIndexBy('id')->setOrderBy(array('order' => 'ASC'))->mappedBy('form')->cascadeAll()->fetchExtraLazy()->build(); $builder->createField('template', 'string')->nullable()->build(); $builder->createField('inKioskMode', 'boolean')->columnName('in_kiosk_mode')->nullable()->build(); $builder->createField('renderStyle', 'boolean')->columnName('render_style')->nullable()->build(); $builder->createOneToMany('submissions', 'Submission')->setOrderBy(array('dateSubmitted' => 'DESC'))->mappedBy('form')->fetchExtraLazy()->build(); $builder->addNullableField('formType', 'string', 'form_type'); }