--- /dev/null
+<?php
+
+/**
+ * @package CRM
+ * @copyright CiviCRM LLC https://civicrm.org/licensing
+ *
+ * Generated from org.civicrm.search_kit/xml/schema/CRM/Search/SearchSegment.xml
+ * DO NOT EDIT. Generated by CRM_Core_CodeGen
+ * (GenCodeChecksum:c8d5ecf2d873eb419f692b8b66f3fc3d)
+ */
+use CRM_Search_ExtensionUtil as E;
+
+/**
+ * Database access object for the SearchSegment entity.
+ */
+class CRM_Search_DAO_SearchSegment extends CRM_Core_DAO {
+ const EXT = E::LONG_NAME;
+ const TABLE_ADDED = '';
+
+ /**
+ * Static instance to hold the table name.
+ *
+ * @var string
+ */
+ public static $_tableName = 'civicrm_search_segment';
+
+ /**
+ * Icon associated with this entity.
+ *
+ * @var string
+ */
+ public static $_icon = 'fa-object-group';
+
+ /**
+ * Field to show when displaying a record.
+ *
+ * @var string
+ */
+ public static $_labelField = 'label';
+
+ /**
+ * Should CiviCRM log any modifications to this table in the civicrm_log table.
+ *
+ * @var bool
+ */
+ public static $_log = TRUE;
+
+ /**
+ * Unique SearchSegment ID
+ *
+ * @var int|string|null
+ * (SQL type: int unsigned)
+ * Note that values will be retrieved from the database as a string.
+ */
+ public $id;
+
+ /**
+ * Unique name
+ *
+ * @var string
+ * (SQL type: varchar(255))
+ * Note that values will be retrieved from the database as a string.
+ */
+ public $name;
+
+ /**
+ * Label for identifying search segment (will appear as name of calculated field)
+ *
+ * @var string
+ * (SQL type: varchar(255))
+ * Note that values will be retrieved from the database as a string.
+ */
+ public $label;
+
+ /**
+ * Description will appear when selecting SearchSegment in the fields dropdown.
+ *
+ * @var string|null
+ * (SQL type: varchar(255))
+ * Note that values will be retrieved from the database as a string.
+ */
+ public $description;
+
+ /**
+ * Entity for which this set is used.
+ *
+ * @var string
+ * (SQL type: varchar(255))
+ * Note that values will be retrieved from the database as a string.
+ */
+ public $entity_name;
+
+ /**
+ * Field for which this set is used (may include pseudoconstant suffix).
+ *
+ * @var string
+ * (SQL type: varchar(255))
+ * Note that values will be retrieved from the database as a string.
+ */
+ public $field_name;
+
+ /**
+ * All items in set
+ *
+ * @var string|null
+ * (SQL type: text)
+ * Note that values will be retrieved from the database as a string.
+ */
+ public $items;
+
+ /**
+ * Class constructor.
+ */
+ public function __construct() {
+ $this->__table = 'civicrm_search_segment';
+ parent::__construct();
+ }
+
+ /**
+ * Returns localized title of this entity.
+ *
+ * @param bool $plural
+ * Whether to return the plural version of the title.
+ */
+ public static function getEntityTitle($plural = FALSE) {
+ return $plural ? E::ts('Search Segments') : E::ts('Search Segment');
+ }
+
+ /**
+ * Returns all the column names of this table
+ *
+ * @return array
+ */
+ public static function &fields() {
+ if (!isset(Civi::$statics[__CLASS__]['fields'])) {
+ Civi::$statics[__CLASS__]['fields'] = [
+ 'id' => [
+ 'name' => 'id',
+ 'type' => CRM_Utils_Type::T_INT,
+ 'description' => E::ts('Unique SearchSegment ID'),
+ 'required' => TRUE,
+ 'where' => 'civicrm_search_segment.id',
+ 'table_name' => 'civicrm_search_segment',
+ 'entity' => 'SearchSegment',
+ 'bao' => 'CRM_Search_DAO_SearchSegment',
+ 'localizable' => 0,
+ 'html' => [
+ 'type' => 'Number',
+ ],
+ 'readonly' => TRUE,
+ 'add' => NULL,
+ ],
+ 'name' => [
+ 'name' => 'name',
+ 'type' => CRM_Utils_Type::T_STRING,
+ 'title' => E::ts('Search Segment Name'),
+ 'description' => E::ts('Unique name'),
+ 'required' => TRUE,
+ 'maxlength' => 255,
+ 'size' => CRM_Utils_Type::HUGE,
+ 'where' => 'civicrm_search_segment.name',
+ 'table_name' => 'civicrm_search_segment',
+ 'entity' => 'SearchSegment',
+ 'bao' => 'CRM_Search_DAO_SearchSegment',
+ 'localizable' => 0,
+ 'html' => [
+ 'type' => 'Text',
+ ],
+ 'add' => NULL,
+ ],
+ 'label' => [
+ 'name' => 'label',
+ 'type' => CRM_Utils_Type::T_STRING,
+ 'title' => E::ts('Label'),
+ 'description' => E::ts('Label for identifying search segment (will appear as name of calculated field)'),
+ 'required' => TRUE,
+ 'maxlength' => 255,
+ 'size' => CRM_Utils_Type::HUGE,
+ 'where' => 'civicrm_search_segment.label',
+ 'table_name' => 'civicrm_search_segment',
+ 'entity' => 'SearchSegment',
+ 'bao' => 'CRM_Search_DAO_SearchSegment',
+ 'localizable' => 0,
+ 'html' => [
+ 'type' => 'Text',
+ ],
+ 'add' => NULL,
+ ],
+ 'description' => [
+ 'name' => 'description',
+ 'type' => CRM_Utils_Type::T_STRING,
+ 'title' => E::ts('Description'),
+ 'description' => E::ts('Description will appear when selecting SearchSegment in the fields dropdown.'),
+ 'maxlength' => 255,
+ 'size' => CRM_Utils_Type::HUGE,
+ 'where' => 'civicrm_search_segment.description',
+ 'table_name' => 'civicrm_search_segment',
+ 'entity' => 'SearchSegment',
+ 'bao' => 'CRM_Search_DAO_SearchSegment',
+ 'localizable' => 0,
+ 'html' => [
+ 'type' => 'Text',
+ ],
+ 'add' => NULL,
+ ],
+ 'entity_name' => [
+ 'name' => 'entity_name',
+ 'type' => CRM_Utils_Type::T_STRING,
+ 'title' => E::ts('Entity'),
+ 'description' => E::ts('Entity for which this set is used.'),
+ 'required' => TRUE,
+ 'maxlength' => 255,
+ 'size' => CRM_Utils_Type::HUGE,
+ 'where' => 'civicrm_search_segment.entity_name',
+ 'table_name' => 'civicrm_search_segment',
+ 'entity' => 'SearchSegment',
+ 'bao' => 'CRM_Search_DAO_SearchSegment',
+ 'localizable' => 0,
+ 'html' => [
+ 'type' => 'Text',
+ ],
+ 'pseudoconstant' => [
+ 'callback' => 'CRM_Search_BAO_SearchSegment::getDAOEntityOptions',
+ ],
+ 'add' => NULL,
+ ],
+ 'field_name' => [
+ 'name' => 'field_name',
+ 'type' => CRM_Utils_Type::T_STRING,
+ 'title' => E::ts('Field'),
+ 'description' => E::ts('Field for which this set is used (may include pseudoconstant suffix).'),
+ 'required' => TRUE,
+ 'maxlength' => 255,
+ 'size' => CRM_Utils_Type::HUGE,
+ 'where' => 'civicrm_search_segment.field_name',
+ 'table_name' => 'civicrm_search_segment',
+ 'entity' => 'SearchSegment',
+ 'bao' => 'CRM_Search_DAO_SearchSegment',
+ 'localizable' => 0,
+ 'html' => [
+ 'type' => 'Text',
+ ],
+ 'add' => NULL,
+ ],
+ 'items' => [
+ 'name' => 'items',
+ 'type' => CRM_Utils_Type::T_TEXT,
+ 'title' => E::ts('Items'),
+ 'description' => E::ts('All items in set'),
+ 'where' => 'civicrm_search_segment.items',
+ 'table_name' => 'civicrm_search_segment',
+ 'entity' => 'SearchSegment',
+ 'bao' => 'CRM_Search_DAO_SearchSegment',
+ 'localizable' => 0,
+ 'serialize' => self::SERIALIZE_JSON,
+ 'add' => NULL,
+ ],
+ ];
+ CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'fields_callback', Civi::$statics[__CLASS__]['fields']);
+ }
+ return Civi::$statics[__CLASS__]['fields'];
+ }
+
+ /**
+ * Return a mapping from field-name to the corresponding key (as used in fields()).
+ *
+ * @return array
+ * Array(string $name => string $uniqueName).
+ */
+ public static function &fieldKeys() {
+ if (!isset(Civi::$statics[__CLASS__]['fieldKeys'])) {
+ Civi::$statics[__CLASS__]['fieldKeys'] = array_flip(CRM_Utils_Array::collect('name', self::fields()));
+ }
+ return Civi::$statics[__CLASS__]['fieldKeys'];
+ }
+
+ /**
+ * Returns the names of this table
+ *
+ * @return string
+ */
+ public static function getTableName() {
+ return self::$_tableName;
+ }
+
+ /**
+ * Returns if this table needs to be logged
+ *
+ * @return bool
+ */
+ public function getLog() {
+ return self::$_log;
+ }
+
+ /**
+ * Returns the list of fields that can be imported
+ *
+ * @param bool $prefix
+ *
+ * @return array
+ */
+ public static function &import($prefix = FALSE) {
+ $r = CRM_Core_DAO_AllCoreTables::getImports(__CLASS__, 'search_segment', $prefix, []);
+ return $r;
+ }
+
+ /**
+ * Returns the list of fields that can be exported
+ *
+ * @param bool $prefix
+ *
+ * @return array
+ */
+ public static function &export($prefix = FALSE) {
+ $r = CRM_Core_DAO_AllCoreTables::getExports(__CLASS__, 'search_segment', $prefix, []);
+ return $r;
+ }
+
+ /**
+ * Returns the list of indices
+ *
+ * @param bool $localize
+ *
+ * @return array
+ */
+ public static function indices($localize = TRUE) {
+ $indices = [
+ 'UI_name' => [
+ 'name' => 'UI_name',
+ 'field' => [
+ 0 => 'name',
+ ],
+ 'localizable' => FALSE,
+ 'unique' => TRUE,
+ 'sig' => 'civicrm_search_segment::1::name',
+ ],
+ ];
+ return ($localize && !empty($indices)) ? CRM_Core_DAO_AllCoreTables::multilingualize(__CLASS__, $indices) : $indices;
+ }
+
+}