Meeting
=======

.. _MeetingParticipant:

MeetingParticipant
------------------

A MeetingParticipant is usually a netfiles user with id and/or mail.

.. code-block:: json

 message MeetingParticipant {
  string name = 1;
  optional string id = 2;
  optional string mail = 3;
 }

+----------+------------+--------------+
| Field    | Type       | Description  |
+==========+============+==============+
| ``name`` | ``string`` |              |
+----------+------------+--------------+
| ``id``   | ``string`` | **Optional** |
+----------+------------+--------------+
| ``mail`` | ``string`` | **Optional** |
+----------+------------+--------------+

.. _MeetingGuest:

MeetingGuest
------------

A MeetingGuest is an external participant, that has no access to netfiles.

.. code-block:: json

 message MeetingGuest {
  optional string salutation = 1;
  string firstname = 2;
  string lastname = 3;
  string mail = 4;
  string language = 5;
  optional string company = 6;
 }

+----------------+------------+--------------+
| Field          | Type       | Description  |
+================+============+==============+
| ``salutation`` | ``string`` | **Optional** |
+----------------+------------+--------------+
| ``firstname``  | ``string`` |              |
+----------------+------------+--------------+
| ``lastname``   | ``string`` |              |
+----------------+------------+--------------+
| ``mail``       | ``string`` |              |
+----------------+------------+--------------+
| ``language``   | ``string`` |              |
+----------------+------------+--------------+
| ``company``    | ``string`` | **Optional** |
+----------------+------------+--------------+

.. _Meeting:

Meeting
-------

It is used to discuss an agenda with participants.
It is a Collection type that can have MeetingTopics as children.
It must have a starting date.

.. code-block:: json

 message Meeting {
  string id = 1;
  string dataroom_id = 2;
  string parent_id = 3;
  string name = 4;
  string author = 5;
  string title = 6;
  string path = 7;
  uint32 num_children = 8;
  EffectivePermission effective_permission = 9;

  // Meeting
  string subject = 10;
  string description = 11;
  string location = 12;
  google.protobuf.Timestamp begin_date_time = 13;
  google.protobuf.Timestamp end_date_time = 14;
  ItemType item_type = 31;

  //repeated MeetingParticipant hosts = 45;
  repeated MeetingParticipant participants = 46;
  //optional MeetingParticipant guests = 47;
  repeated MeetingParticipant minute_takers = 48;
  repeated MeetingParticipant organizers = 49;
  string meeting_status = 50;
  google.protobuf.Timestamp creation_date = 51;
  google.protobuf.Timestamp modification_date = 52;
 }

+--------------------------+---------------------------------+----------------------------+
| Field                    | Type                            | Description                |
+==========================+=================================+============================+
| ``id``                   | ``string``                      |                            |
+--------------------------+---------------------------------+----------------------------+
| ``dataroom_id``          | ``string``                      |                            |
+--------------------------+---------------------------------+----------------------------+
| ``parent_id``            | ``string``                      |                            |
+--------------------------+---------------------------------+----------------------------+
| ``name``                 | ``string``                      |                            |
+--------------------------+---------------------------------+----------------------------+
| ``author``               | ``string``                      |                            |
+--------------------------+---------------------------------+----------------------------+
| ``title``                | ``string``                      |                            |
+--------------------------+---------------------------------+----------------------------+
| ``path``                 | ``string``                      |                            |
+--------------------------+---------------------------------+----------------------------+
| ``num_children``         | ``uint32``                      |                            |
+--------------------------+---------------------------------+----------------------------+
| ``effective_permission`` | ``EffectivePermission``         |                            |
+--------------------------+---------------------------------+----------------------------+
| ``subject``              | ``string``                      |                            |
+--------------------------+---------------------------------+----------------------------+
| ``description``          | ``string``                      |                            |
+--------------------------+---------------------------------+----------------------------+
| ``location``             | ``string``                      |                            |
+--------------------------+---------------------------------+----------------------------+
| ``begin_date_time``      | ``google.protobuf.Timestamp``   |                            |
+--------------------------+---------------------------------+----------------------------+
| ``end_date_time``        | ``google.protobuf.Timestamp``   |                            |
+--------------------------+---------------------------------+----------------------------+
| ``item_type``            | ``ItemType``                    |                            |
+--------------------------+---------------------------------+----------------------------+
| ``hosts``                | array of ``MeetingParticipant`` | commented out              |
+--------------------------+---------------------------------+----------------------------+
| ``participants``         | array of ``MeetingParticipant`` |                            |
+--------------------------+---------------------------------+----------------------------+
| ``guests``               | ``MeetingParticipant``          | **Optional** commented out |
+--------------------------+---------------------------------+----------------------------+
| ``minute_takers``        | array of ``MeetingParticipant`` |                            |
+--------------------------+---------------------------------+----------------------------+
| ``organizers``           | array of ``MeetingParticipant`` |                            |
+--------------------------+---------------------------------+----------------------------+
| ``meeting_status``       | ``string``                      |                            |
+--------------------------+---------------------------------+----------------------------+
| ``creation_date``        | ``google.protobuf.Timestamp``   |                            |
+--------------------------+---------------------------------+----------------------------+
| ``modification_date``    | ``google.protobuf.Timestamp``   |                            |
+--------------------------+---------------------------------+----------------------------+

.. _VoteOption:

VoteOption
----------

In a MeetingVote you can have different options on what to vote for or who voted for a specific option.

.. code-block:: json

 message VoteOption {
  string name = 1;
  string id = 2;
  uint32 votes = 3;
  string voter_names = 4;
  float vote_percent = 5;
 }

+------------------+------------+-------------+
| Field            | Type       | Description |
+==================+============+=============+
| ``name``         | ``string`` |             |
+------------------+------------+-------------+
| ``id``           | ``string`` |             |
+------------------+------------+-------------+
| ``votes``        | ``uint32`` |             |
+------------------+------------+-------------+
| ``voter_names``  | ``string`` |             |
+------------------+------------+-------------+
| ``vote_percent`` | ``float``  |             |
+------------------+------------+-------------+

.. _MeetingTopic:

MeetingTopic
------------

It is a Collection type that can also have children like MeetingVote, MeetingTopicMinute or Document. It gives the structure of a meeting, what should be discussed inside of a meeting and who participates.

.. code-block:: json

 message MeetingTopic {
  // Defaults
  string id = 1;
  string dataroom_id = 2;
  string parent_id = 3;
  string name = 4;
  string author = 5;
  string title = 6;
  string path = 7;
  uint32 num_children = 8;
  string description = 9;
  EffectivePermission effective_permission = 10;
  google.protobuf.Timestamp creation_date = 11;
  google.protobuf.Timestamp modification_date = 12;
  ItemType item_type = 13;

  // Meeting Topic
  google.protobuf.Timestamp topic_begin = 14;
  google.protobuf.Timestamp topic_end = 15;
  uint32 topic_duration = 16;
  string topic_type = 17;
  MeetingParticipant responsible = 18;
  uint32 topic_number = 19;
  repeated MeetingGuest guests = 20;
 }

+--------------------------+-------------------------------+------------------------------------------------------+
| Field                    | Type                          | Description                                          |
+==========================+===============================+======================================================+
| ``id``                   | ``string``                    |                                                      |
+--------------------------+-------------------------------+------------------------------------------------------+
| ``dataroom_id``          | ``string``                    |                                                      |
+--------------------------+-------------------------------+------------------------------------------------------+
| ``parent_id``            | ``string``                    |                                                      |
+--------------------------+-------------------------------+------------------------------------------------------+
| ``name``                 | ``string``                    |                                                      |
+--------------------------+-------------------------------+------------------------------------------------------+
| ``author``               | ``string``                    |                                                      |
+--------------------------+-------------------------------+------------------------------------------------------+
| ``title``                | ``string``                    |                                                      |
+--------------------------+-------------------------------+------------------------------------------------------+
| ``path``                 | ``string``                    |                                                      |
+--------------------------+-------------------------------+------------------------------------------------------+
| ``num_children``         | ``uint32``                    |                                                      |
+--------------------------+-------------------------------+------------------------------------------------------+
| ``description``          | ``string``                    |                                                      |
+--------------------------+-------------------------------+------------------------------------------------------+
| ``effective_permission`` | ``EffectivePermission``       | See :ref:`EffectivePermission <EffectivePermission>` |
+--------------------------+-------------------------------+------------------------------------------------------+
| ``creation_date``        | ``google.protobuf.Timestamp`` |                                                      |
+--------------------------+-------------------------------+------------------------------------------------------+
| ``modification_date``    | ``google.protobuf.Timestamp`` |                                                      |
+--------------------------+-------------------------------+------------------------------------------------------+
| ``item_type``            | ``ItemType``                  | See :ref:`ItemType <ItemType>`                       |
+--------------------------+-------------------------------+------------------------------------------------------+
| ``topic_begin``          | ``google.protobuf.Timestamp`` |                                                      |
+--------------------------+-------------------------------+------------------------------------------------------+
| ``topic_end``            | ``google.protobuf.Timestamp`` |                                                      |
+--------------------------+-------------------------------+------------------------------------------------------+
| ``topic_duration``       | ``uint32``                    |                                                      |
+--------------------------+-------------------------------+------------------------------------------------------+
| ``topic_type``           | ``string``                    |                                                      |
+--------------------------+-------------------------------+------------------------------------------------------+
| ``responsible``          | ``MeetingParticipant``        |                                                      |
+--------------------------+-------------------------------+------------------------------------------------------+
| ``topic_number``         | ``uint32``                    |                                                      |
+--------------------------+-------------------------------+------------------------------------------------------+
| ``guests``               | array of ``MeetingGuest``     |                                                      |
+--------------------------+-------------------------------+------------------------------------------------------+

.. _MeetingVote:

MeetingVote
-----------

A Voting that can take place inside of MeetingTopics.
Right now MeetingVote can also be created in the Files directory, without having a corresponding Meeting.
A Voting must contain informations on when the Voting starts and who is entitled to vote.

.. code-block:: json

 message MeetingVote {
  // defaults
  string id = 1;
  string dataroom_id = 2;
  string parent_id = 3;
  string name = 4;
  string author = 5;
  string title = 6;
  string path = 7;
  uint32 num_children = 8;
  EffectivePermission effective_permission = 9;
  string description = 10;
  ItemType item_type = 11;
  google.protobuf.Timestamp creation_date = 12;
  google.protobuf.Timestamp modification_date = 13;

  // Voting
  string voting_status = 14;
  google.protobuf.Timestamp voting_start = 15;
  google.protobuf.Timestamp voting_end = 16;
  string voting_mode = 17;
  repeated MeetingParticipant voting_entitleds = 18;
  repeated MeetingParticipant voting_accountables = 19;
  repeated VoteOption votes = 20;
  repeated MeetingParticipant voters = 21;
 }

+--------------------------+---------------------------------+-------------+
| Field                    | Type                            | Description |
+==========================+=================================+=============+
| ``id``                   | ``string``                      |             |
+--------------------------+---------------------------------+-------------+
| ``dataroom_id``          | ``string``                      |             |
+--------------------------+---------------------------------+-------------+
| ``parent_id``            | ``string``                      |             |
+--------------------------+---------------------------------+-------------+
| ``name``                 | ``string``                      |             |
+--------------------------+---------------------------------+-------------+
| ``author``               | ``string``                      |             |
+--------------------------+---------------------------------+-------------+
| ``title``                | ``string``                      |             |
+--------------------------+---------------------------------+-------------+
| ``path``                 | ``string``                      |             |
+--------------------------+---------------------------------+-------------+
| ``num_children``         | ``uint32``                      |             |
+--------------------------+---------------------------------+-------------+
| ``effective_permission`` | ``EffectivePermission``         |             |
+--------------------------+---------------------------------+-------------+
| ``description``          | ``string``                      |             |
+--------------------------+---------------------------------+-------------+
| ``item_type``            | ``ItemType``                    |             |
+--------------------------+---------------------------------+-------------+
| ``creation_date``        | ``google.protobuf.Timestamp``   |             |
+--------------------------+---------------------------------+-------------+
| ``modification_date``    | ``google.protobuf.Timestamp``   |             |
+--------------------------+---------------------------------+-------------+
| ``voting_status``        | ``string``                      |             |
+--------------------------+---------------------------------+-------------+
| ``voting_start``         | ``google.protobuf.Timestamp``   |             |
+--------------------------+---------------------------------+-------------+
| ``voting_end``           | ``google.protobuf.Timestamp``   |             |
+--------------------------+---------------------------------+-------------+
| ``voting_mode``          | ``string``                      |             |
+--------------------------+---------------------------------+-------------+
| ``voting_entitleds``     | array of``MeetingParticipant``  |             |
+--------------------------+---------------------------------+-------------+
| ``voting_accountables``  | array of``MeetingParticipant``  |             |
+--------------------------+---------------------------------+-------------+
| ``votes``                | array of ``VoteOption``         |             |
+--------------------------+---------------------------------+-------------+
| ``voters``               | array of ``MeetingParticipant`` |             |
+--------------------------+---------------------------------+-------------+

.. _MeetingTopicMinute:

MeetingTopicMinute
------------------

This is the protocol, that is connected to a MeetingTopic.
It can only exist one and it is also a child of a MeetingTopic

.. code-block:: json

 message MeetingTopicMinute {
  string id = 1;
  string dataroom_id = 2;
  string parent_id = 3;
  string name = 4;
  string author = 5;
  string title = 6;
  string path = 7;

  uint32 content_size = 8;
  string content = 9;
  bool approved = 10;
  EffectivePermission effective_permission = 11;

  string version = 12;
  google.protobuf.Timestamp creation_date = 13;
  google.protobuf.Timestamp modification_date = 14;
  bool download_prohibited = 15;
  string description = 16;
  bool write_access = 17;
  uint32 num_children = 18;

  ItemType item_type = 31;
 }

+--------------------------+-------------------------------+-------------+
| Field                    | Type                          | Description |
+==========================+===============================+=============+
| ``id``                   | ``string``                    |             |
+--------------------------+-------------------------------+-------------+
| ``dataroom_id``          | ``string``                    |             |
+--------------------------+-------------------------------+-------------+
| ``parent_id``            | ``string``                    |             |
+--------------------------+-------------------------------+-------------+
| ``name``                 | ``string``                    |             |
+--------------------------+-------------------------------+-------------+
| ``author``               | ``string``                    |             |
+--------------------------+-------------------------------+-------------+
| ``title``                | ``string``                    |             |
+--------------------------+-------------------------------+-------------+
| ``path``                 | ``string``                    |             |
+--------------------------+-------------------------------+-------------+
| ``content_size``         | ``uint32``                    |             |
+--------------------------+-------------------------------+-------------+
| ``content``              | ``string``                    |             |
+--------------------------+-------------------------------+-------------+
| ``approved``             | ``bool``                      |             |
+--------------------------+-------------------------------+-------------+
| ``effective_permission`` | ``EffectivePermission``       |             |
+--------------------------+-------------------------------+-------------+
| ``version``              | ``string``                    |             |
+--------------------------+-------------------------------+-------------+
| ``creation_date``        | ``google.protobuf.Timestamp`` |             |
+--------------------------+-------------------------------+-------------+
| ``modification_date``    | ``google.protobuf.Timestamp`` |             |
+--------------------------+-------------------------------+-------------+
| ``download_prohibited``  | ``bool``                      |             |
+--------------------------+-------------------------------+-------------+
| ``description``          | ``string``                    |             |
+--------------------------+-------------------------------+-------------+
| ``write_access``         | ``bool``                      |             |
+--------------------------+-------------------------------+-------------+
| ``num_children``         | ``uint32``                    |             |
+--------------------------+-------------------------------+-------------+
| ``item_type``            | ``ItemType``                  |             |
+--------------------------+-------------------------------+-------------+

.. _MeetingsItem:

MeetingsItem
------------

A MeetingsItem is an allowed type that can exist inside the meeting area.
Only those can exist inside of meetings.

.. code-block:: json

 message MeetingsItem {
  oneof item {
    //    MeetingsRoot root = 1;
    Collection collection = 2;
    Meeting meeting = 3;
    MeetingTopic meeting_topic = 4;
    MeetingTopicMinute meeting_topic_minute = 5;
    MeetingVote meeting_vote = 6;
    Document document = 7;
  }
 }

+--------------------------+------------------------+---------------+
| Field                    | Type                   | Description   |
+==========================+========================+===============+
| ``root``                 | ``MeetingsRoot``       | commented out |
+--------------------------+------------------------+---------------+
| ``collection``           | ``Collection``         |               |
+--------------------------+------------------------+---------------+
| ``meeting``              | ``Meeting``            |               |
+--------------------------+------------------------+---------------+
| ``meeting_topic``        | ``MeetingTopic``       |               |
+--------------------------+------------------------+---------------+
| ``meeting_topic_minute`` | ``MeetingTopicMinute`` |               |
+--------------------------+------------------------+---------------+
| ``meeting_vote``         | ``MeetingVote``        |               |
+--------------------------+------------------------+---------------+
| ``document``             | ``Document``           |               |
+--------------------------+------------------------+---------------+