From 2756f3d156f5c7b772d50099a1a77a49f014cece Mon Sep 17 00:00:00 2001
From: Jan-Hendrik Willms <tleilax+studip@gmail.com>
Date: Thu, 4 Apr 2024 08:06:10 +0000
Subject: [PATCH] describe sorm models again, fixes #3901

Merge request studip/studip!2796
---
 lib/models/AuthUserMd5.class.php      |  1 +
 lib/models/ConsultationBlock.php      |  2 +-
 lib/models/ConsultationBooking.php    |  2 +-
 lib/models/ConsultationEvent.php      |  2 +-
 lib/models/Contact.class.php          |  7 +++---
 lib/models/ContactGroup.class.php     | 16 ++++++-------
 lib/models/ContactGroupItem.class.php | 15 ++++++------
 lib/models/ExternPageConfig.php       |  9 +++----
 lib/models/LoginFaq.class.php         |  5 ++++
 lib/models/Statusgruppen.php          |  2 +-
 lib/models/User.class.php             |  6 +++--
 lib/models/WikiOnlineEditingUser.php  | 13 ++++++----
 lib/models/WikiPage.class.php         | 34 +++++++++++++++------------
 lib/models/WikiVersion.php            | 15 +++++++++---
 14 files changed, 78 insertions(+), 51 deletions(-)

diff --git a/lib/models/AuthUserMd5.class.php b/lib/models/AuthUserMd5.class.php
index 48e27f8462a..4cad6a7445a 100644
--- a/lib/models/AuthUserMd5.class.php
+++ b/lib/models/AuthUserMd5.class.php
@@ -27,6 +27,7 @@
  * @property string|null $lock_comment database column
  * @property string|null $locked_by database column
  * @property string $visible database column
+ * @property string|null $matriculation_number database column
  */
 
 class AuthUserMd5 extends SimpleORMap
diff --git a/lib/models/ConsultationBlock.php b/lib/models/ConsultationBlock.php
index a4d1579fb3b..c13e871d5b5 100644
--- a/lib/models/ConsultationBlock.php
+++ b/lib/models/ConsultationBlock.php
@@ -20,7 +20,7 @@
  * @property int $calendar_events database column
  * @property int $show_participants database column
  * @property string $require_reason database column
- * @property bool $mail_to_tutors database column
+ * @property int $mail_to_tutors database column
  * @property string|null $confirmation_text database column
  * @property string $note database column
  * @property int $size database column
diff --git a/lib/models/ConsultationBooking.php b/lib/models/ConsultationBooking.php
index 7782681fa45..2a1b7932fe5 100644
--- a/lib/models/ConsultationBooking.php
+++ b/lib/models/ConsultationBooking.php
@@ -16,7 +16,7 @@
  * @property int $chdate database column
  * @property ConsultationSlot $slot belongs_to ConsultationSlot
  * @property User $user belongs_to User
- * @property CalendarDate $event has_one CalendarDate
+ * @property CalendarDate|null $event has_one CalendarDate
  */
 class ConsultationBooking extends SimpleORMap implements PrivacyObject
 {
diff --git a/lib/models/ConsultationEvent.php b/lib/models/ConsultationEvent.php
index e0b6b5962cd..eac2d286187 100644
--- a/lib/models/ConsultationEvent.php
+++ b/lib/models/ConsultationEvent.php
@@ -10,7 +10,7 @@
  * @property string $event_id database column
  * @property int $mkdate database column
  * @property ConsultationSlot $slot belongs_to ConsultationSlot
- * @property CalendarDate $event belongs_to CalendarDate
+ * @property CalendarDate $event has_one CalendarDate
  */
 class ConsultationEvent extends SimpleORMap
 {
diff --git a/lib/models/Contact.class.php b/lib/models/Contact.class.php
index 16bff26611c..b3783127708 100644
--- a/lib/models/Contact.class.php
+++ b/lib/models/Contact.class.php
@@ -9,13 +9,12 @@
  * @property array $id alias for pk
  * @property string $owner_id database column
  * @property string $user_id database column
+ * @property int $mkdate database column
+ * @property int $chdate database column
  * @property string $calendar_permissions database column
- *     An enum with the possible values "", "READ" and "WRITE".
- *     The empty string specifies that no calendar permissions are granted.
+ * @property SimpleORMapCollection|ContactGroupItem[] $groups has_many ContactGroupItem
  * @property User $owner belongs_to User
  * @property User $friend belongs_to User
- * @property string $mkdate database column
- * @property string $chdate database column
  */
 class Contact extends SimpleORMap
 {
diff --git a/lib/models/ContactGroup.class.php b/lib/models/ContactGroup.class.php
index 0e60d3b5a5c..f71bc56378f 100644
--- a/lib/models/ContactGroup.class.php
+++ b/lib/models/ContactGroup.class.php
@@ -1,7 +1,7 @@
 <?php
 /**
  * The ContactGroup class represents a contact group of a user.
- * 
+ *
  * This file is part of Stud.IP
  *
  * This program is free software; you can redistribute it and/or
@@ -16,13 +16,13 @@
  * @package     resources
  * @since       5.5
  *
- * @property string $id The ID of the group.
- * @property string $name Name of the group.
- * @property string $owner_id The ID of the owner to whom the group belongs to.
- * @property string $mkdate The creation date of the group.
- * @property string $chdate The modification date of the group.
- * @property User $owner The owner of the group.
- * @property ContactGroupItem[]|SimpleORMapCollection $items The items (users) that belong to the group.
+ * @property int $id database column
+ * @property string $name database column
+ * @property string $owner_id database column
+ * @property int $mkdate database column
+ * @property int $chdate database column
+ * @property SimpleORMapCollection|ContactGroupItem[] $items has_many ContactGroupItem
+ * @property User $owner belongs_to User
  */
 class ContactGroup extends SimpleORMap
 {
diff --git a/lib/models/ContactGroupItem.class.php b/lib/models/ContactGroupItem.class.php
index 0204d0a5a65..8f2583b3773 100644
--- a/lib/models/ContactGroupItem.class.php
+++ b/lib/models/ContactGroupItem.class.php
@@ -1,7 +1,7 @@
 <?php
 /**
  * The ContactGroupItem class represents an item in a contact group.
- * 
+ *
  * This file is part of Stud.IP
  *
  * This program is free software; you can redistribute it and/or
@@ -16,12 +16,13 @@
  * @package     resources
  * @since       5.5
  *
- * @property string $group_id The ID of the group.
- * @property string $user_id The ID of the user that is inside the group.
- * @property string $mkdate The creation date of the group.
- * @property string $chdate The modification date of the group.
- * @property ContactGroup $contact_group The group instance for the item.
- * @property User $user The user instance for the item.
+ * @property array $id alias for pk
+ * @property int $group_id database column
+ * @property string $user_id database column
+ * @property int $mkdate database column
+ * @property int $chdate database column
+ * @property ContactGroup $contact_group belongs_to ContactGroup
+ * @property User $user belongs_to User
  */
 class ContactGroupItem extends SimpleORMap
 {
diff --git a/lib/models/ExternPageConfig.php b/lib/models/ExternPageConfig.php
index 5259d4151f2..dc7a7187b0a 100644
--- a/lib/models/ExternPageConfig.php
+++ b/lib/models/ExternPageConfig.php
@@ -13,20 +13,21 @@
  * @package     extern
  * @since       5.4
  *
- * @property string $config_id database column
  * @property string $id alias column for config_id
+ * @property string $config_id database column
  * @property string $range_id database column
  * @property string $type database column
  * @property string $name database column
  * @property string $description database column
- * @property string $conf database column
+ * @property JSONArrayObject $conf database column
  * @property string $template database column
  * @property string $author_id database column
  * @property string $editor_id database column
  * @property int $mkdate database column
  * @property int $chdate database column
- * @property User $author has_one User
- * @property User $editor has_one User
+ * @property User $author belongs_to User
+ * @property User $editor belongs_to User
+ * @property Institute $range belongs_to Institute
  */
 
 class ExternPageConfig extends SimpleORMap
diff --git a/lib/models/LoginFaq.class.php b/lib/models/LoginFaq.class.php
index d6cad4077f2..54f81705321 100644
--- a/lib/models/LoginFaq.class.php
+++ b/lib/models/LoginFaq.class.php
@@ -15,6 +15,11 @@
  * @license     http://www.gnu.org/licenses/gpl-2.0.html GPL version 2
  * @category    Stud.IP
  * @since       5.5
+ *
+ * @property int $id alias column for faq_id
+ * @property int $faq_id database column
+ * @property I18NString $title database column
+ * @property I18NString $description database column
 */
 class LoginFaq extends SimpleORMap
 {
diff --git a/lib/models/Statusgruppen.php b/lib/models/Statusgruppen.php
index b2f9e83b6c9..81b61c3381d 100644
--- a/lib/models/Statusgruppen.php
+++ b/lib/models/Statusgruppen.php
@@ -42,7 +42,7 @@
  * @property BlubberStatusgruppeThread $blubberthread has_one BlubberStatusgruppeThread
  * @property SimpleORMapCollection|CourseDate[] $dates has_and_belongs_to_many CourseDate
  * @property mixed $children additional field
- * @property-read Range|null $range
+ * @property-read mixed $range additional field
  */
 class Statusgruppen extends SimpleORMap implements PrivacyObject
 {
diff --git a/lib/models/User.class.php b/lib/models/User.class.php
index 056b48aea9b..029333b4e6a 100644
--- a/lib/models/User.class.php
+++ b/lib/models/User.class.php
@@ -30,13 +30,13 @@
  * @property string $vorname database column
  * @property string $nachname database column
  * @property string $email database column
- * @property string $matriculation_number database column
  * @property string $validation_key database column
  * @property string|null $auth_plugin database column
  * @property int $locked database column
  * @property string|null $lock_comment database column
  * @property string|null $locked_by database column
  * @property string $visible database column
+ * @property string|null $matriculation_number database column
  * @property SimpleORMapCollection|CourseMember[] $course_memberships has_many CourseMember
  * @property SimpleORMapCollection|InstituteMember[] $institute_memberships has_many InstituteMember
  * @property SimpleORMapCollection|AdmissionApplication[] $admission_applications has_many AdmissionApplication
@@ -52,12 +52,14 @@
  * @property SimpleORMapCollection|Kategorie[] $profile_categories has_many Kategorie
  * @property SimpleORMapCollection|MvvContact[] $mvv_assignments has_many MvvContact
  * @property SimpleORMapCollection|CourseMemberNotification[] $course_notifications has_many CourseMemberNotification
+ * @property SimpleORMapCollection|ExternPageConfig[] $extern_pages_configs has_many ExternPageConfig
  * @property UserInfo $info has_one UserInfo
  * @property UserOnline $online has_one UserOnline
- * @property Courseware\Unit $courseware_units has_one Courseware\Unit
  * @property SimpleORMapCollection|User[] $contacts has_and_belongs_to_many User
  * @property SimpleORMapCollection|UserDomain[] $domains has_and_belongs_to_many UserDomain
  * @property-read mixed $config additional field
+ * @property-read mixed $gender additional field
+ * @property-read mixed $salutation additional field
  * @property mixed $hobby additional field
  * @property mixed $lebenslauf additional field
  * @property mixed $publi additional field
diff --git a/lib/models/WikiOnlineEditingUser.php b/lib/models/WikiOnlineEditingUser.php
index 5cc0df14c6b..a037c2ebcdd 100644
--- a/lib/models/WikiOnlineEditingUser.php
+++ b/lib/models/WikiOnlineEditingUser.php
@@ -13,10 +13,15 @@
  * @license     http://www.gnu.org/licenses/gpl-2.0.html GPL version 2
  * @category    Stud.IP
  *
- * @property string page_id       database column
- * @property string user_id       database column
- * @property string id            alias column for user_id
- * @property string last_lifesign computed column read/write
+ * @property int $id database column
+ * @property string $user_id database column
+ * @property int $page_id database column
+ * @property int $editing database column
+ * @property int $editing_request database column
+ * @property int $chdate database column
+ * @property int $mkdate database column
+ * @property WikiPage $page belongs_to WikiPage
+ * @property User $user belongs_to User
  */
 class WikiOnlineEditingUser extends SimpleORMap
 {
diff --git a/lib/models/WikiPage.class.php b/lib/models/WikiPage.class.php
index d349aa1ec89..605123e3cfb 100644
--- a/lib/models/WikiPage.class.php
+++ b/lib/models/WikiPage.class.php
@@ -11,23 +11,27 @@
  * @author    mlunzena
  * @copyright (c) Authors
  *
- * @property array $id alias for pk
- * @property string $course_id database column
- * @property string|null $user_id database column
+ * @property int $id alias column for page_id
+ * @property int $page_id database column
+ * @property string $range_id database column
  * @property string $name database column
- * @property string $content database column
- * @property string|null $ancestor database column
- * @property int|null $chdate database column
- * @property int $version database column
- * @property int|null $mkdate database column
- * @property User|null $user belongs_to User
+ * @property string|null $content database column
+ * @property int|null $parent_id database column
+ * @property string $read_permission database column
+ * @property string $write_permission database column
+ * @property string $user_id database column
+ * @property int|null $locked_since database column
+ * @property string|null $locked_by_user_id database column
+ * @property int $chdate database column
+ * @property int $mkdate database column
+ * @property SimpleORMapCollection|WikiVersion[] $versions has_many WikiVersion
+ * @property SimpleORMapCollection|WikiOnlineEditingUser[] $onlineeditingusers has_many WikiOnlineEditingUser
+ * @property User $user belongs_to User
  * @property Course $course belongs_to Course
- * @property WikiVersion[]|SimpleORMapCollection $versions
- * @property WikiOnlineEditingUser[]|SimpleORMapCollection $onlineeditingusers
- * @property-read WikiPage $parent additional field
- * @property-read WikiPage[] $children additional field
- * @property-read WikiVersion|null $predecessor additional field
- * @property-read int $versionnumber additional field
+ * @property-read mixed $parent additional field
+ * @property-read mixed $children additional field
+ * @property-read mixed $predecessor additional field
+ * @property-read mixed $versionnumber additional field
  */
 class WikiPage extends SimpleORMap implements PrivacyObject
 {
diff --git a/lib/models/WikiVersion.php b/lib/models/WikiVersion.php
index 487e680cb8c..5997d3ed587 100644
--- a/lib/models/WikiVersion.php
+++ b/lib/models/WikiVersion.php
@@ -13,9 +13,18 @@
  * @license     http://www.gnu.org/licenses/gpl-2.0.html GPL version 2
  * @category    Stud.IP
  *
- * @property string page_id       database column
- * @property string id            alias column for user_id
- * @property string last_lifesign computed column read/write
+ * @property int $id alias column for version_id
+ * @property int $version_id database column
+ * @property int $page_id database column
+ * @property string $name database column
+ * @property string|null $content database column
+ * @property string $user_id database column
+ * @property int $mkdate database column
+ * @property WikiPage $page belongs_to WikiPage
+ * @property User $user belongs_to User
+ * @property-read mixed $predecessor additional field
+ * @property-read mixed $successor additional field
+ * @property-read mixed $versionnumber additional field
  */
 class WikiVersion extends SimpleORMap
 {
-- 
GitLab