left to right direction
'top to bottom direction
hide circle
'avoide "." issues:
set namespaceSeparator none


skinparam class {
  BackgroundColor White
  BackgroundColor<<FN>> Yellow
  BackgroundColor<<FS>> Yellow
  BackgroundColor<<FT>> LightGray
  BackgroundColor<<IF>> Yellow
  BackgroundColor<<IS>> Yellow
  BackgroundColor<<P>> Aqua
  BackgroundColor<<PC>> Aqua
  BackgroundColor<<SN>> Yellow
  BackgroundColor<<SO>> SlateBlue
  BackgroundColor<<TF>> LightGray
  BackgroundColor<<TR>> Tomato
  BackgroundColor<<U>> White
  BackgroundColor<<V>> WhiteSmoke
  BackgroundColor<<X>> Aqua
}


entity logs.usp_ExecutionLog_insert << P >> {
  --
  --
}

entity repo.Index_gross << V >> {
  * **index_guid** : uniqueidentifier
  --
  AntoraIndexColumnList : nvarchar(max)
  ColumnList : nvarchar(max)
  ConstraintColumnList : nvarchar(max)
  DbmlIndexColumnList : nvarchar(max)
  index_name : nvarchar(450)
  index_type : tinyint
  IndexPatternColumnDatatype : nvarchar(4000)
  IndexPatternColumnName : nvarchar(4000)
  IndexSemanticGroup : nvarchar(512)
  is_index_disabled : bit
  is_index_primary_key : bit
  is_index_real : bit
  is_index_unique : bit
  is_persistence : bit
  is_repo_managed : bit
  parent_RepoObject_guid : uniqueidentifier
  PersistenceWhereColumnList : nvarchar(max)
  PumlIndexColumnList : nvarchar(max)
  referenced_index_guid : uniqueidentifier
  * RepoObject_fullname : nvarchar(261)
  * RepoObject_fullname2 : nvarchar(257)
  RowNumber_PatternPerParentObject : bigint
  RowNumber_PkPerParentObject : bigint
  * SysObject_fullname : nvarchar(261)
  * SysObject_fullname2 : nvarchar(257)
  SysObject_id : int
  * SysObject_name : nvarchar(128)
  * SysObject_schema_name : nvarchar(128)
  SysObject_type : char(2)
  --
}

entity repo.Index_Settings << U >> {
  * **index_guid** : uniqueidentifier
  --
  IndexPatternColumnDatatype : nvarchar(4000)
  IndexPatternColumnName : nvarchar(4000)
  IndexSemanticGroup : nvarchar(512)
  * is_create_constraint : bit
  --
}

entity repo.Index_virtual << U >> {
  * **index_guid** : uniqueidentifier
  --
  * has_managedName : bit
  index_name : nvarchar(128)
  * index_type : tinyint
  * is_index_disabled : bit
  * is_index_primary_key : bit
  * is_index_unique : bit
  * parent_RepoObject_guid : uniqueidentifier
  referenced_index_guid : uniqueidentifier
  RowNumberInReferencing : int
  --
}

entity repo.IndexColumn_virtual << U >> {
  * **index_guid** : uniqueidentifier
  * **index_column_id** : int
  --
  * is_descending_key : bit
  * RepoObjectColumn_guid : uniqueidentifier
  --
}

entity repo.RepoObject << U >> {
  * **RepoObject_guid** : uniqueidentifier
  --
  has_execution_plan_issue : bit
  has_get_referenced_issue : bit
  Inheritance_StringAggSeparatorSql : nvarchar(4000)
  InheritanceDefinition : nvarchar(4000)
  InheritanceType : tinyint
  * is_DocsExclude : bit
  is_repo_managed : bit
  is_required_ObjectMerge : bit
  * is_ssas : bit
  is_SysObject_missing : bit
  * modify_dt : datetime
  pk_index_guid : uniqueidentifier
  pk_IndexPatternColumnName_new : nvarchar(4000)
  Repo_history_table_guid : uniqueidentifier
  Repo_temporal_type : tinyint
  * RepoObject_name : nvarchar(128)
  RepoObject_Referencing_Count : int
  * RepoObject_schema_name : nvarchar(128)
  * RepoObject_type : char(2)
  SysObject_id : int
  SysObject_modify_date : datetime
  * SysObject_name : nvarchar(128)
  * SysObject_parent_object_id : int
  * SysObject_schema_name : nvarchar(128)
  SysObject_type : char(2)
  {abstract} has_different_sys_names : bit
  * {static} is_RepoObject_name_uniqueidentifier : int
  * {static} is_SysObject_name_uniqueidentifier : int
  {abstract} node_id : bigint
  * {static} RepoObject_fullname : nvarchar(261)
  * {static} RepoObject_fullname2 : nvarchar(257)
  * {static} SysObject_fullname : nvarchar(261)
  * {static} SysObject_fullname2 : nvarchar(257)
  * {abstract} SysObject_query_sql : nvarchar(406)
  * {static} usp_persistence_fullname2 : nvarchar(269)
  * {static} usp_persistence_name : nvarchar(140)
  --
}

entity repo.RepoObjectColumn << U >> {
  * **RepoObjectColumn_guid** : uniqueidentifier
  --
  Inheritance_StringAggSeparatorSql : nvarchar(4000)
  InheritanceDefinition : nvarchar(4000)
  InheritanceType : tinyint
  is_persistence_no_check : bit
  is_persistence_no_include : bit
  is_persistence_no_update : bit
  is_query_plan_expression : bit
  is_required_ColumnMerge : bit
  is_SysObjectColumn_missing : bit
  persistence_source_RepoObjectColumn_guid : uniqueidentifier
  Referencing_Count : int
  Repo_default_definition : nvarchar(max)
  Repo_default_is_system_named : bit
  Repo_default_name : nvarchar(128)
  Repo_definition : nvarchar(max)
  * Repo_generated_always_type : tinyint
  Repo_graph_type : int
  Repo_increment_value : sql_variant
  * Repo_is_computed : bit
  * Repo_is_identity : bit
  Repo_is_nullable : bit
  Repo_is_persisted : bit
  Repo_seed_value : sql_variant
  Repo_user_type_fullname : nvarchar(128)
  Repo_user_type_name : nvarchar(128)
  Repo_uses_database_collation : bit
  * RepoObject_guid : uniqueidentifier
  RepoObjectColumn_column_id : int
  * RepoObjectColumn_name : nvarchar(128)
  SysObjectColumn_column_id : int
  * SysObjectColumn_name : nvarchar(128)
  * {static} Column_name : nvarchar(128)
  {abstract} has_different_sys_names : bit
  * {static} is_RepoObjectColumn_name_uniqueidentifier : int
  * {static} is_SysObjectColumn_name_uniqueidentifier : int
  --
}

entity repo.usp_Index_ForeignKey << P >> {
  --
  --
}

entity repo.usp_Index_virtual_set << P >> {
  --
  --
}

logs.usp_ExecutionLog_insert <.. repo.usp_Index_virtual_set
repo.Index_gross <.. repo.usp_Index_virtual_set
repo.Index_Settings <.. repo.usp_Index_virtual_set
repo.Index_virtual <.. repo.usp_Index_virtual_set
repo.IndexColumn_virtual <.. repo.usp_Index_virtual_set
repo.RepoObject <.. repo.usp_Index_virtual_set
repo.RepoObjectColumn <.. repo.usp_Index_virtual_set
repo.usp_Index_virtual_set <.. repo.usp_Index_ForeignKey

