left to right 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 reference.RepoObjectColumn_reference_union << V >> {
  --
  definition : nvarchar(max)
  * InformationSource : varchar(31)
  is_computed : bit
  is_referenced_object : bit
  is_referencing_object_equal_referenced_object : bit
  referenced_column_name : nvarchar(128)
  referenced_entity_name : nvarchar(128)
  referenced_id : int
  referenced_minor_id : int
  referenced_node_id : bigint
  referenced_RepoObject_guid : uniqueidentifier
  referenced_RepoObjectColumn_guid : uniqueidentifier
  referenced_schema_name : nvarchar(128)
  referenced_type : char(2)
  referencing_column_name : nvarchar(128)
  referencing_entity_name : nvarchar(128)
  referencing_id : int
  referencing_minor_id : int
  referencing_node_id : bigint
  referencing_RepoObject_guid : uniqueidentifier
  referencing_RepoObjectColumn_guid : uniqueidentifier
  referencing_schema_name : nvarchar(128)
  referencing_type : char(2)
}

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_repo_managed : bit
  is_required_ObjectMerge : 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_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)
  {abstract} has_different_sys_names : bit
  * {static} is_RepoObjectColumn_name_uniqueidentifier : int
  * {static} is_SysObjectColumn_name_uniqueidentifier : int
}

entity repo.RepoObjectColumn_MissingSource_TypeV << V >> {
  * **RepoObjectColumn_guid** : uniqueidentifier
  --
  has_different_sys_names : bit
  is_query_plan_expression : bit
  * is_RepoObjectColumn_name_uniqueidentifier : int
  is_SysObjectColumn_missing : bit
  * is_SysObjectColumn_name_uniqueidentifier : int
  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_fullname : nvarchar(261)
  * RepoObject_guid : uniqueidentifier
  * RepoObjectColumn_name : nvarchar(128)
  * SysObject_fullname : nvarchar(261)
  SysObjectColumn_column_id : int
  * SysObjectColumn_name : nvarchar(128)
}

reference.RepoObjectColumn_reference_union <.. repo.RepoObjectColumn_MissingSource_TypeV
repo.RepoObject <.. repo.RepoObjectColumn_MissingSource_TypeV
repo.RepoObjectColumn <.. repo.RepoObjectColumn_MissingSource_TypeV
repo.RepoObject::RepoObject_fullname <-- repo.RepoObjectColumn_MissingSource_TypeV::RepoObject_fullname
repo.RepoObject::SysObject_fullname <-- repo.RepoObjectColumn_MissingSource_TypeV::SysObject_fullname
repo.RepoObjectColumn::has_different_sys_names <-- repo.RepoObjectColumn_MissingSource_TypeV::has_different_sys_names
repo.RepoObjectColumn::is_query_plan_expression <-- repo.RepoObjectColumn_MissingSource_TypeV::is_query_plan_expression
repo.RepoObjectColumn::is_RepoObjectColumn_name_uniqueidentifier <-- repo.RepoObjectColumn_MissingSource_TypeV::is_RepoObjectColumn_name_uniqueidentifier
repo.RepoObjectColumn::is_SysObjectColumn_missing <-- repo.RepoObjectColumn_MissingSource_TypeV::is_SysObjectColumn_missing
repo.RepoObjectColumn::is_SysObjectColumn_name_uniqueidentifier <-- repo.RepoObjectColumn_MissingSource_TypeV::is_SysObjectColumn_name_uniqueidentifier
repo.RepoObjectColumn::persistence_source_RepoObjectColumn_guid <-- repo.RepoObjectColumn_MissingSource_TypeV::persistence_source_RepoObjectColumn_guid
repo.RepoObjectColumn::Referencing_Count <-- repo.RepoObjectColumn_MissingSource_TypeV::Referencing_Count
repo.RepoObjectColumn::Repo_default_definition <-- repo.RepoObjectColumn_MissingSource_TypeV::Repo_default_definition
repo.RepoObjectColumn::Repo_default_is_system_named <-- repo.RepoObjectColumn_MissingSource_TypeV::Repo_default_is_system_named
repo.RepoObjectColumn::Repo_default_name <-- repo.RepoObjectColumn_MissingSource_TypeV::Repo_default_name
repo.RepoObjectColumn::Repo_definition <-- repo.RepoObjectColumn_MissingSource_TypeV::Repo_definition
repo.RepoObjectColumn::Repo_generated_always_type <-- repo.RepoObjectColumn_MissingSource_TypeV::Repo_generated_always_type
repo.RepoObjectColumn::Repo_graph_type <-- repo.RepoObjectColumn_MissingSource_TypeV::Repo_graph_type
repo.RepoObjectColumn::Repo_increment_value <-- repo.RepoObjectColumn_MissingSource_TypeV::Repo_increment_value
repo.RepoObjectColumn::Repo_is_computed <-- repo.RepoObjectColumn_MissingSource_TypeV::Repo_is_computed
repo.RepoObjectColumn::Repo_is_identity <-- repo.RepoObjectColumn_MissingSource_TypeV::Repo_is_identity
repo.RepoObjectColumn::Repo_is_nullable <-- repo.RepoObjectColumn_MissingSource_TypeV::Repo_is_nullable
repo.RepoObjectColumn::Repo_is_persisted <-- repo.RepoObjectColumn_MissingSource_TypeV::Repo_is_persisted
repo.RepoObjectColumn::Repo_seed_value <-- repo.RepoObjectColumn_MissingSource_TypeV::Repo_seed_value
repo.RepoObjectColumn::Repo_user_type_fullname <-- repo.RepoObjectColumn_MissingSource_TypeV::Repo_user_type_fullname
repo.RepoObjectColumn::Repo_user_type_name <-- repo.RepoObjectColumn_MissingSource_TypeV::Repo_user_type_name
repo.RepoObjectColumn::Repo_uses_database_collation <-- repo.RepoObjectColumn_MissingSource_TypeV::Repo_uses_database_collation
repo.RepoObjectColumn::RepoObject_guid <-- repo.RepoObjectColumn_MissingSource_TypeV::RepoObject_guid
repo.RepoObjectColumn::RepoObjectColumn_guid <-- repo.RepoObjectColumn_MissingSource_TypeV::RepoObjectColumn_guid
repo.RepoObjectColumn::RepoObjectColumn_name <-- repo.RepoObjectColumn_MissingSource_TypeV::RepoObjectColumn_name
repo.RepoObjectColumn::SysObjectColumn_column_id <-- repo.RepoObjectColumn_MissingSource_TypeV::SysObjectColumn_column_id
repo.RepoObjectColumn::SysObjectColumn_name <-- repo.RepoObjectColumn_MissingSource_TypeV::SysObjectColumn_name
