3 namespace Friendica\Repository;
5 use Friendica\BaseModel;
6 use Friendica\BaseRepository;
7 use Friendica\Collection;
9 use Friendica\Model\PermissionSet;
10 use Friendica\Util\DateTimeFormat;
12 class ProfileField extends BaseRepository
14 protected static $table_name = 'profile_field';
16 protected static $model_class = Model\ProfileField::class;
18 protected static $collection_class = Collection\ProfileFields::class;
22 * @return Model\ProfileField
24 protected function create(array $data)
26 return new Model\ProfileField($this->dba, $this->logger, $data);
30 * @param array $condition
31 * @return Model\ProfileField
32 * @throws \Friendica\Network\HTTPException\NotFoundException
34 public function selectFirst(array $condition)
36 return parent::selectFirst($condition);
40 * @param array $condition
41 * @param array $params
42 * @return Collection\ProfileFields
45 public function select(array $condition = [], array $params = [])
47 return parent::select($condition, $params);
51 * @param array $condition
52 * @param array $params
53 * @param int|null $max_id
54 * @param int|null $since_id
56 * @return Collection\ProfileFields
59 public function selectByBoundaries(array $condition = [], array $params = [], int $max_id = null, int $since_id = null, int $limit = self::LIMIT)
61 return parent::selectByBoundaries($condition, $params, $max_id, $since_id, $limit);
65 * @param int $uid Field owner user Id
66 * @return Collection\ProfileFields
69 public function selectByUserId(int $uid)
73 ['order' => ['order']]
78 * Retrieve all custom profile field a given contact is able to access to, including public profile fields.
80 * @param int $cid Private contact id, must be owned by $uid
81 * @param int $uid Field owner user id
82 * @return Collection\ProfileFields
85 public function selectByContactId(int $cid, int $uid)
87 $psids = PermissionSet::get($uid, $cid);
89 // Includes public custom fields
93 ['uid' => $uid, 'psid' => $psids],
94 ['order' => ['order']]
99 * @param array $fields
100 * @return Model\ProfileField|bool
103 public function insert(array $fields)
105 $fields['created'] = DateTimeFormat::utcNow();
106 $fields['edited'] = DateTimeFormat::utcNow();
108 return parent::insert($fields);
112 * @param Model\ProfileField $model
116 public function update(BaseModel $model)
118 $model->edited = DateTimeFormat::utcNow();
120 return parent::update($model);