Skip to content

06. Gendox types

Giannis Yfantidis edited this page Oct 31, 2023 · 4 revisions

6.1 Types

6.1.1 User Types

This section categorizes users into distinct types within the system, each serving a specific purpose:

  • GENDOX_SUPER_ADMIN: Users with this type are designated as Administrators with superlative authority. They possess the highest level of administrative control and are responsible for overseeing and managing the Gendox system.
  • GENDOX_USER: GENDOX_USER types represent regular users affiliated with Gendox. They have standard access privileges and interact with the system as typical users.
  • GENDOX_AGENT: This user type is reserved for individuals who act as agents on behalf of Gendox. Agents may have specific responsibilities and permissions related to Gendox operations.
  • DISCORD_USER: Users falling under the DISCORD_USER type originate from the Discord platform. This categorization helps in distinguishing users who are integrated with Discord within the broader system.
type_category name description
USER_TYPE GENDOX_SUPER_ADMIN This is for Administrators
USER_TYPE GENDOX_USER This user is from Gendox
USER_TYPE GENDOX_AGENT This is for Gendox Agents
USER_TYPE DISCORD_USER This user is from Discord

6.1.2 Organization Role Types

In this section, various roles within an organization are defined, each with its own set of responsibilities:

  • ROLE_ADMIN: Role administrators are individuals with the highest level of authority within an organization. They oversee and manage organizational activities, making critical decisions and setting organizational policies.
  • ROLE_READER: ROLE_READER types are granted read-only access within an organization. They can view documents and organizational content but are restricted from making changes or edits.
  • ROLE_EDITOR: Users with the ROLE_EDITOR role have the privilege to make changes and edits within an organization. They can create, modify, and update documents and content.
type_category name description
ORGANIZATION_ROLE_TYPE ROLE_ADMIN This is for Administrators for an Organization
ORGANIZATION_ROLE_TYPE ROLE_READER This is Read only Users for an Organization
ORGANIZATION_ROLE_TYPE ROLE_EDITOR This is a User with write access for an Organization

6.1.3 Organization Role Permission Types

This section specifies fine-grained permissions within organization roles, granting users specific capabilities:

  • OP_READ_DOCUMENT: Permission for reading documents at a granular level, enabling users to access and view documents.
  • OP_WRITE_DOCUMENT: This permission grants users the capability to create, edit, and modify documents within the organization.
  • OP_ADD_USERS: With this permission, users can add new members to the organization, expanding its membership.
  • OP_REMOVE_USERS: Users with this permission can remove members from the organization, managing the organization's roster.
  • OP_DELETE_ORGANIZATION: This permission allows users to delete the entire organization, making significant structural changes.
  • OP_EDIT_PROJECT_SETTINGS: Users with this permission can modify project-specific settings and configurations within the organization.
type_category name description
ORGANIZATION_ROLE_PERMISSION_TYPE OP_READ_DOCUMENT Fine-Grained permission to read a document
ORGANIZATION_ROLE_PERMISSION_TYPE OP_WRITE_DOCUMENT Fine-Grained permission to write a document
ORGANIZATION_ROLE_PERMISSION_TYPE OP_ADD_USERS Permission to add users from an organization
ORGANIZATION_ROLE_PERMISSION_TYPE OP_REMOVE_USERS Permission to remove users from an organization
ORGANIZATION_ROLE_PERMISSION_TYPE OP_DELETE_ORGANIZATION Permission to delete an organization
ORGANIZATION_ROLE_PERMISSION_TYPE OP_EDIT_PROJECT_SETTINGS Permission to edit a project settings

6.1.4 Document Field Types

This section defines various field types used to capture specific types of data within documents:

  • FIELD_TEXT: A simple text field is designed for basic textual input.
  • FIELD_RICH_TEXT: The rich text field is similar to a WYSIWYG editor, allowing users to format and style text extensively.
  • FIELD_NUMBER: A field for entering numerical values, suitable for capturing numeric data.
  • FIELD_DATE_TIME: This field is used to select dates and times, facilitating the recording of time-sensitive information.
  • FIELD_CHECKBOX: The checkbox field provides a binary choice, allowing users to select or deselect an option.
  • FIELD_MULTI_RADIO: Users can select a single option from multiple choices, suitable for capturing single-choice data.
  • FIELD_MULTI_CHECKBOX: Multiple options can be selected from a list, making it ideal for capturing multiple-choice data.
  • FIELD_FILE: The file field enables users to upload files, making it convenient for sharing documents and attachments.
  • FIELD_IMAGE: This field is for uploading images, suitable for adding visual content to documents.
  • FIELD_VIDEO: Users can upload videos using the video field, making it possible to incorporate multimedia elements.
  • FIELD_AUDIO: Audio files can be uploaded using this field, allowing for the inclusion of sound content.
  • FIELD_LOCATION: This field is used for selecting a geographical location, making it suitable for capturing location-specific data.
  • FIELD_SIGNATURE: Users can provide digital signatures using this field, which is useful for capturing authenticated approvals.
  • FIELD_BARCODE: The barcode field allows users to scan barcode information for data entry and recognition.
  • FIELD_SLIDER: Users can select values within a specified range, making it suitable for capturing numeric data within a defined range.
  • FIELD_RATING: This field allows users to provide a rating or score for various items or content.
  • FIELD_EMAIL: Users can enter email addresses in this field, making it convenient for capturing contact information.
  • FIELD_URL: The URL field is used for entering web links and URLs within documents.
type_category name description
DOCUMENT_FIELD_TYPE FIELD_TEXT Simple text field
DOCUMENT_FIELD_TYPE FIELD_RICH_TEXT Rich text area, like WYSIWYG
DOCUMENT_FIELD_TYPE FIELD_NUMBER Number field
DOCUMENT_FIELD_TYPE FIELD_DATE_TIME Date field
DOCUMENT_FIELD_TYPE FIELD_CHECKBOX Checkbox field
DOCUMENT_FIELD_TYPE FIELD_MULTI_RADIO Multiple choice Radio field, that user can select exactly one option
DOCUMENT_FIELD_TYPE FIELD_MULTI_CHECKBOX Multiple choice Checkbox field, that user can select multiple options
DOCUMENT_FIELD_TYPE FIELD_FILE File field, that user can upload a file
DOCUMENT_FIELD_TYPE FIELD_IMAGE Image field, that user can upload an image
DOCUMENT_FIELD_TYPE FIELD_VIDEO Video field, that user can upload a video
DOCUMENT_FIELD_TYPE FIELD_AUDIO Audio field, that user can upload an audio
DOCUMENT_FIELD_TYPE FIELD_LOCATION Location field, that user can select a location
DOCUMENT_FIELD_TYPE FIELD_SIGNATURE Signature field, that user can sign
DOCUMENT_FIELD_TYPE FIELD_BARCODE Barcode field, that user can scan a barcode
DOCUMENT_FIELD_TYPE FIELD_SLIDER Slider field, that user can select a value from a range
DOCUMENT_FIELD_TYPE FIELD_RATING Rating field, that user can rate
DOCUMENT_FIELD_TYPE FIELD_EMAIL Email field, that user can enter an email
DOCUMENT_FIELD_TYPE FIELD_URL URL field, that user can enter an URL

6.1.5 Field Validation Types

This section defines validation types applied to document fields to ensure data accuracy:

  • FIELD_VALIDATION_PHONE: Validation to check that a text input is a valid phone number, ensuring that phone number data is correctly formatted.
  • FIELD_VALIDATION_EMAIL: This validation type checks that a text input is a valid email address, confirming the email's correctness.
  • FIELD_VALIDATION_URL: Validation to verify that a text input is a valid URL, ensuring that web links are properly formatted and functional.
type_category name description
FIELD_VALIDATION_TYPE FIELD_VALIDATION_PHONE Validation that checks a text is a phone number
FIELD_VALIDATION_TYPE FIELD_VALIDATION_EMAIL Validation that checks a text is an email
FIELD_VALIDATION_TYPE FIELD_VALIDATION_URL Validation that checks a text is an URL

6.1.6 Grouping Strategy Type

This section defines different strategies for grouping and organizing document content:

  • SIMPLE_SECTION: The simple section grouping strategy provides a straightforward approach to dividing document content into distinct sections.
  • OVERLAP_SECTIONS: Overlap sections grouping strategy allows for content sections to intersect, enabling more flexible content organization.
  • STATIC_WORD_COUNT_SPLITTER: This strategy splits content based on a predefined static word count, providing control over the granularity of content organization.
type_category name description
GROUPING_STRATEGY_TYPE SIMPLE_SECTION Simple section grouping strategy type
GROUPING_STRATEGY_TYPE OVERLAP_SECTIONS Overlap sections grouping strategy type
GROUPING_STRATEGY_TYPE STATIC_WORD_COUNT_SPLITTER This is the static count splitter

6.1.7 Template Type

This section defines various template types used for document creation and structure:

  • CHAT_TEMPLATE: Chat templates are designed for creating documents that follow a conversational or chat-like format.
  • SECTION_TEMPLATE: Section templates are used to create documents with predefined sections, offering a structured layout for content placement and organization.
type_category name description
TEMPLATE_TYPE CHAT_TEMPLATE This is a chat template
TEMPLATE_TYPE SECTION_TEMPLATE This is a section template

6.2 Types Model

graph TD;

subgraph types:

	users --> types;
	documents --> types;
	embeddings --> types;
        organizations --> types;
        templates --> types;   
	end
Loading

6.3 Types Class Diagram

You can visualize the Types entity using the following Mermaid class diagram:

classDiagram
 types <|-- users : USER_TYPE
 types <|-- documents : DOCUMENT_FILED_TYPE
 types <|-- documents : GROUPING_STRATEGY_TYPE
 types <|-- documents : DOCUMENT_SPLITTER_TYPE
 embedding_group --|> types : grouping_strategy_type_id 
 embedding_group --|> types : semantic_search_model_id
 organizations --|> types : ORGANIZATIONS_ROLE_TYPE
 organizations --|> types : ORGANIZATIONS_ROLE_PERMITION_TYPE
 template --|> types : TEMPLATE_TYPE
Loading
Clone this wiki locally