Files
espocrm/tests/testData/DB/Entities.php
2015-11-30 12:22:48 +02:00

226 lines
5.8 KiB
PHP

<?php
namespace Espo\Entities;
use Espo\ORM\Entity;
class TEntity extends Entity
{
}
class Account extends TEntity
{
public $fields = array(
'id' => array(
'type' => Entity::ID,
),
'name' => array(
'type' => Entity::VARCHAR,
'len' => 255,
),
'deleted' => array(
'type' => Entity::BOOL,
'default' => 0,
),
);
public $relations = array(
'teams' => array(
'type' => Entity::MANY_MANY,
'entity' => 'Team',
'relationName' => 'EntityTeam',
'midKeys' => array(
'entityId',
'teamId',
),
'conditions' => array('entityType' => 'Account')
),
);
}
class Team extends TEntity
{
public $fields = array(
'id' => array(
'type' => Entity::ID,
),
'name' => array(
'type' => Entity::VARCHAR,
'len' => 255,
),
'deleted' => array(
'type' => Entity::BOOL,
'default' => 0,
),
);
public $relations = array();
}
class Contact extends TEntity
{
public $fields = array(
'id' => array(
'type' => Entity::ID,
),
'name' => array(
'type' => Entity::VARCHAR,
'notStorable' => true,
'select' => "TRIM(CONCAT(contact.first_name, ' ', contact.last_name))",
'where' => array(
'LIKE' => "(contact.first_name LIKE {value} OR contact.last_name LIKE {value} OR CONCAT(contact.first_name, ' ', contact.last_name) LIKE {value})",
),
'orderBy' => "contact.first_name {direction}, contact.last_name {direction}",
),
'firstName' => array(
'type' => Entity::VARCHAR,
),
'lastName' => array(
'type' => Entity::VARCHAR,
),
'deleted' => array(
'type' => Entity::BOOL,
'default' => 0,
),
);
public $relations = array();
}
class Post extends TEntity
{
public $fields = array(
'id' => array(
'type' => Entity::ID,
),
'name' => array(
'type' => Entity::VARCHAR,
'len' => 255,
),
'privateField' => array(
'notStorable' => true,
),
'createdByName' => array(
'type' => Entity::FOREIGN,
'relation' => 'createdBy',
'foreign' => array('salutationName', 'firstName', ' ', 'lastName'),
),
'createdById' => array(
'type' => Entity::FOREIGN_ID,
),
'deleted' => array(
'type' => Entity::BOOL,
'default' => 0,
),
);
public $relations = array(
'tags' => array(
'type' => Entity::MANY_MANY,
'entity' => 'Tag',
'relationName' => 'PostTag',
'key' => 'id',
'foreignKey' => 'id',
'midKeys' => array(
'postId',
'tagId',
),
),
'comments' => array(
'type' => Entity::HAS_MANY,
'entity' => 'Comment',
'foreignKey' => 'postId',
),
'createdBy' => array(
'type' => Entity::BELONGS_TO,
'entity' => 'User',
'key' => 'createdById',
),
'notes' => array(
'type' => Entity::HAS_CHILDREN,
'entity' => 'Note',
'foreignKey' => 'parentId',
'foreignType' => 'parentType',
),
);
}
class Comment extends TEntity
{
public $fields = array(
'id' => array(
'type' => Entity::ID,
),
'postId' => array(
'type' => Entity::FOREIGN_ID,
),
'postName' => array(
'type' => Entity::FOREIGN,
'relation' => 'post',
'foreign' => 'name',
),
'name' => array(
'type' => Entity::VARCHAR,
'len' => 255,
),
'deleted' => array(
'type' => Entity::BOOL,
'default' => 0,
),
);
public $relations = array(
'post' => array(
'type' => Entity::BELONGS_TO,
'entity' => 'Post',
'key' => 'postId',
'foreignKey' => 'id',
),
);
}
class Tag extends TEntity
{
public $fields = array(
'id' => array(
'type' => Entity::ID,
),
'name' => array(
'type' => Entity::VARCHAR,
'len' => 50,
),
'deleted' => array(
'type' => Entity::BOOL,
'default' => 0,
),
);
}
class Note extends TEntity
{
public $fields = array(
'id' => array(
'type' => Entity::ID,
),
'name' => array(
'type' => Entity::VARCHAR,
'len' => 50,
),
'parentId' => array(
'type' => Entity::FOREIGN_ID,
),
'parentType' => array(
'type' => Entity::FOREIGN_TYPE,
),
'parentName' => array(
'type' => Entity::VARCHAR,
'notStorable' => true,
),
'deleted' => array(
'type' => Entity::BOOL,
'default' => 0,
),
);
}