diff --git a/.gitignore b/.gitignore
index 0fcd6d2d..902ed77c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,4 +19,5 @@ build
*.tmp
tmp/
dump/
-result
\ No newline at end of file
+result
+jwt.key*
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 1300fd56..83a01dbc 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -26,32 +26,32 @@
- {
+ "keyToString": {
+ "NIXITCH_NIXPKGS_CONFIG": "/etc/nix/nixpkgs-config.nix",
+ "NIXITCH_NIX_CONF_DIR": "",
+ "NIXITCH_NIX_OTHER_STORES": "",
+ "NIXITCH_NIX_PATH": "/home/Rory/.nix-defexpr/channels:nixpkgs=/nix/store/wb6agba4kfsxpbnb5hzlq58vkjzvbsk6-source",
+ "NIXITCH_NIX_PROFILES": "/run/current-system/sw /nix/var/nix/profiles/default /etc/profiles/per-user/Rory /home/Rory/.local/state/nix/profile /nix/profile /home/Rory/.nix-profile",
+ "NIXITCH_NIX_REMOTE": "",
+ "NIXITCH_NIX_USER_PROFILE_DIR": "/nix/var/nix/profiles/per-user/Rory",
+ "Node.js.Server.ts.executor": "Debug",
+ "RunOnceActivity.ShowReadmeOnStart": "true",
+ "javascript.nodejs.core.library.configured.version": "20.17.0",
+ "javascript.nodejs.core.library.typings.version": "20.17.10",
+ "last_opened_file_path": "/home/Rory/git/spacebar/server/src/admin-api/routes/v0",
+ "node.js.detected.package.eslint": "true",
+ "node.js.selected.package.eslint": "(autodetect)",
+ "node.js.selected.package.tslint": "(autodetect)",
+ "nodejs_interpreter_path": "/nix/store/dcdc33kdjdhjnzg6rkmd0cx4kpwl8cac-nodejs-20.17.0/bin/node",
+ "nodejs_package_manager_path": "npm",
+ "npm.build.executor": "Run",
+ "npm.start.executor": "Debug",
+ "prettierjs.PrettierConfiguration.Package": "/home/Rory/git/spacebar/server/node_modules/prettier",
+ "settings.editor.selected.configurable": "preferences.pluginManager",
+ "ts.external.directory.path": "/home/Rory/git/spacebar/server/node_modules/typescript/lib"
}
-}]]>
+}
@@ -88,7 +88,9 @@
-
+
+
+
@@ -106,7 +108,6 @@
file://$PROJECT_DIR$/src/admin-api/Server.ts
140
-
diff --git a/extra/admin-api/.editorconfig b/extra/admin-api/.editorconfig
new file mode 100644
index 00000000..1a3cf7e7
--- /dev/null
+++ b/extra/admin-api/.editorconfig
@@ -0,0 +1,1806 @@
+root = true
+
+[*]
+charset = utf-8
+end_of_line = lf
+indent_size = 4
+indent_style = space
+trim_trailing_whitespace = true
+insert_final_newline = true
+tab_width = 4
+
+# Microsoft .NET properties
+csharp_indent_braces = false
+csharp_indent_switch_labels = true
+csharp_new_line_before_catch = true
+csharp_new_line_before_else = true
+csharp_new_line_before_finally = true
+csharp_new_line_before_members_in_object_initializers = false
+csharp_new_line_before_open_brace = none
+csharp_new_line_between_query_expression_clauses = true
+csharp_preferred_modifier_order = public, private, protected, internal, file, new, static, abstract, virtual, sealed, readonly, override, extern, unsafe, volatile, async, required:suggestion
+csharp_preserve_single_line_blocks = true
+csharp_space_after_cast = false
+csharp_space_after_colon_in_inheritance_clause = true
+csharp_space_after_comma = true
+csharp_space_after_dot = false
+csharp_space_after_keywords_in_control_flow_statements = true
+csharp_space_after_semicolon_in_for_statement = true
+csharp_space_around_binary_operators = before_and_after
+csharp_space_before_colon_in_inheritance_clause = true
+csharp_space_before_comma = false
+csharp_space_before_dot = false
+csharp_space_before_open_square_brackets = false
+csharp_space_before_semicolon_in_for_statement = false
+csharp_space_between_empty_square_brackets = false
+csharp_space_between_method_call_empty_parameter_list_parentheses = false
+csharp_space_between_method_call_name_and_opening_parenthesis = false
+csharp_space_between_method_call_parameter_list_parentheses = false
+csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
+csharp_space_between_method_declaration_name_and_open_parenthesis = false
+csharp_space_between_method_declaration_parameter_list_parentheses = false
+csharp_space_between_parentheses = false
+csharp_space_between_square_brackets = false
+csharp_style_expression_bodied_accessors = true:suggestion
+csharp_style_expression_bodied_constructors = true:none
+csharp_style_expression_bodied_methods = true:none
+csharp_style_expression_bodied_properties = true:suggestion
+csharp_style_namespace_declarations = file_scoped:error
+csharp_style_prefer_utf8_string_literals = true:suggestion
+csharp_style_var_elsewhere = true:suggestion
+csharp_style_var_for_built_in_types = true:suggestion
+csharp_style_var_when_type_is_apparent = true:suggestion
+csharp_using_directive_placement = outside_namespace:silent
+dotnet_diagnostic.bc40000.severity = warning
+dotnet_diagnostic.bc400005.severity = warning
+dotnet_diagnostic.bc40008.severity = warning
+dotnet_diagnostic.bc40056.severity = warning
+dotnet_diagnostic.bc42016.severity = warning
+dotnet_diagnostic.bc42024.severity = warning
+dotnet_diagnostic.bc42025.severity = warning
+dotnet_diagnostic.bc42104.severity = warning
+dotnet_diagnostic.bc42105.severity = warning
+dotnet_diagnostic.bc42106.severity = warning
+dotnet_diagnostic.bc42107.severity = warning
+dotnet_diagnostic.bc42304.severity = warning
+dotnet_diagnostic.bc42309.severity = warning
+dotnet_diagnostic.bc42322.severity = warning
+dotnet_diagnostic.bc42349.severity = warning
+dotnet_diagnostic.bc42353.severity = warning
+dotnet_diagnostic.bc42354.severity = warning
+dotnet_diagnostic.bc42355.severity = warning
+dotnet_diagnostic.bc42356.severity = warning
+dotnet_diagnostic.bc42358.severity = warning
+dotnet_diagnostic.bc42504.severity = warning
+dotnet_diagnostic.bc42505.severity = warning
+dotnet_diagnostic.ca2252.severity = error
+dotnet_diagnostic.cs0067.severity = warning
+dotnet_diagnostic.cs0078.severity = warning
+dotnet_diagnostic.cs0108.severity = warning
+dotnet_diagnostic.cs0109.severity = warning
+dotnet_diagnostic.cs0114.severity = warning
+dotnet_diagnostic.cs0162.severity = warning
+dotnet_diagnostic.cs0164.severity = warning
+dotnet_diagnostic.cs0168.severity = warning
+dotnet_diagnostic.cs0169.severity = warning
+dotnet_diagnostic.cs0183.severity = warning
+dotnet_diagnostic.cs0184.severity = warning
+dotnet_diagnostic.cs0197.severity = warning
+dotnet_diagnostic.cs0219.severity = warning
+dotnet_diagnostic.cs0252.severity = warning
+dotnet_diagnostic.cs0253.severity = warning
+dotnet_diagnostic.cs0414.severity = warning
+dotnet_diagnostic.cs0420.severity = warning
+dotnet_diagnostic.cs0458.severity = warning
+dotnet_diagnostic.cs0464.severity = warning
+dotnet_diagnostic.cs0465.severity = warning
+dotnet_diagnostic.cs0469.severity = warning
+dotnet_diagnostic.cs0472.severity = warning
+dotnet_diagnostic.cs0612.severity = warning
+dotnet_diagnostic.cs0618.severity = warning
+dotnet_diagnostic.cs0628.severity = warning
+dotnet_diagnostic.cs0642.severity = warning
+dotnet_diagnostic.cs0649.severity = warning
+dotnet_diagnostic.cs0652.severity = warning
+dotnet_diagnostic.cs0657.severity = warning
+dotnet_diagnostic.cs0658.severity = warning
+dotnet_diagnostic.cs0659.severity = warning
+dotnet_diagnostic.cs0660.severity = warning
+dotnet_diagnostic.cs0661.severity = warning
+dotnet_diagnostic.cs0665.severity = warning
+dotnet_diagnostic.cs0672.severity = warning
+dotnet_diagnostic.cs0675.severity = warning
+dotnet_diagnostic.cs0693.severity = warning
+dotnet_diagnostic.cs1030.severity = warning
+dotnet_diagnostic.cs1058.severity = warning
+dotnet_diagnostic.cs1066.severity = warning
+dotnet_diagnostic.cs1522.severity = warning
+dotnet_diagnostic.cs1570.severity = warning
+dotnet_diagnostic.cs1571.severity = warning
+dotnet_diagnostic.cs1572.severity = warning
+dotnet_diagnostic.cs1573.severity = warning
+dotnet_diagnostic.cs1574.severity = warning
+dotnet_diagnostic.cs1580.severity = warning
+dotnet_diagnostic.cs1581.severity = warning
+dotnet_diagnostic.cs1584.severity = warning
+dotnet_diagnostic.cs1587.severity = warning
+dotnet_diagnostic.cs1589.severity = warning
+dotnet_diagnostic.cs1590.severity = warning
+dotnet_diagnostic.cs1591.severity = warning
+dotnet_diagnostic.cs1592.severity = warning
+dotnet_diagnostic.cs1710.severity = warning
+dotnet_diagnostic.cs1711.severity = warning
+dotnet_diagnostic.cs1712.severity = warning
+dotnet_diagnostic.cs1717.severity = warning
+dotnet_diagnostic.cs1723.severity = warning
+dotnet_diagnostic.cs1911.severity = warning
+dotnet_diagnostic.cs1957.severity = warning
+dotnet_diagnostic.cs1981.severity = warning
+dotnet_diagnostic.cs1998.severity = warning
+dotnet_diagnostic.cs4014.severity = warning
+dotnet_diagnostic.cs7022.severity = warning
+dotnet_diagnostic.cs7023.severity = warning
+dotnet_diagnostic.cs7095.severity = warning
+dotnet_diagnostic.cs8073.severity = warning
+dotnet_diagnostic.cs8094.severity = warning
+dotnet_diagnostic.cs8123.severity = warning
+dotnet_diagnostic.cs8321.severity = warning
+dotnet_diagnostic.cs8383.severity = warning
+dotnet_diagnostic.cs8416.severity = warning
+dotnet_diagnostic.cs8417.severity = warning
+dotnet_diagnostic.cs8424.severity = warning
+dotnet_diagnostic.cs8425.severity = warning
+dotnet_diagnostic.cs8500.severity = warning
+dotnet_diagnostic.cs8509.severity = warning
+dotnet_diagnostic.cs8524.severity = warning
+dotnet_diagnostic.cs8597.severity = warning
+dotnet_diagnostic.cs8600.severity = warning
+dotnet_diagnostic.cs8601.severity = warning
+dotnet_diagnostic.cs8602.severity = warning
+dotnet_diagnostic.cs8603.severity = warning
+dotnet_diagnostic.cs8604.severity = warning
+dotnet_diagnostic.cs8605.severity = warning
+dotnet_diagnostic.cs8607.severity = warning
+dotnet_diagnostic.cs8608.severity = warning
+dotnet_diagnostic.cs8609.severity = warning
+dotnet_diagnostic.cs8610.severity = warning
+dotnet_diagnostic.cs8611.severity = warning
+dotnet_diagnostic.cs8612.severity = warning
+dotnet_diagnostic.cs8613.severity = warning
+dotnet_diagnostic.cs8614.severity = warning
+dotnet_diagnostic.cs8615.severity = warning
+dotnet_diagnostic.cs8616.severity = warning
+dotnet_diagnostic.cs8617.severity = warning
+dotnet_diagnostic.cs8618.severity = warning
+dotnet_diagnostic.cs8619.severity = warning
+dotnet_diagnostic.cs8620.severity = warning
+dotnet_diagnostic.cs8621.severity = warning
+dotnet_diagnostic.cs8622.severity = warning
+dotnet_diagnostic.cs8624.severity = warning
+dotnet_diagnostic.cs8625.severity = warning
+dotnet_diagnostic.cs8629.severity = warning
+dotnet_diagnostic.cs8631.severity = warning
+dotnet_diagnostic.cs8632.severity = warning
+dotnet_diagnostic.cs8633.severity = warning
+dotnet_diagnostic.cs8634.severity = warning
+dotnet_diagnostic.cs8643.severity = warning
+dotnet_diagnostic.cs8644.severity = warning
+dotnet_diagnostic.cs8645.severity = warning
+dotnet_diagnostic.cs8655.severity = warning
+dotnet_diagnostic.cs8656.severity = warning
+dotnet_diagnostic.cs8667.severity = warning
+dotnet_diagnostic.cs8669.severity = warning
+dotnet_diagnostic.cs8670.severity = warning
+dotnet_diagnostic.cs8714.severity = warning
+dotnet_diagnostic.cs8762.severity = warning
+dotnet_diagnostic.cs8763.severity = warning
+dotnet_diagnostic.cs8764.severity = warning
+dotnet_diagnostic.cs8765.severity = warning
+dotnet_diagnostic.cs8766.severity = warning
+dotnet_diagnostic.cs8767.severity = warning
+dotnet_diagnostic.cs8768.severity = warning
+dotnet_diagnostic.cs8769.severity = warning
+dotnet_diagnostic.cs8770.severity = warning
+dotnet_diagnostic.cs8774.severity = warning
+dotnet_diagnostic.cs8775.severity = warning
+dotnet_diagnostic.cs8776.severity = warning
+dotnet_diagnostic.cs8777.severity = warning
+dotnet_diagnostic.cs8794.severity = warning
+dotnet_diagnostic.cs8819.severity = warning
+dotnet_diagnostic.cs8824.severity = warning
+dotnet_diagnostic.cs8825.severity = warning
+dotnet_diagnostic.cs8846.severity = warning
+dotnet_diagnostic.cs8847.severity = warning
+dotnet_diagnostic.cs8851.severity = warning
+dotnet_diagnostic.cs8860.severity = warning
+dotnet_diagnostic.cs8892.severity = warning
+dotnet_diagnostic.cs8907.severity = warning
+dotnet_diagnostic.cs8947.severity = warning
+dotnet_diagnostic.cs8960.severity = warning
+dotnet_diagnostic.cs8961.severity = warning
+dotnet_diagnostic.cs8962.severity = warning
+dotnet_diagnostic.cs8963.severity = warning
+dotnet_diagnostic.cs8965.severity = warning
+dotnet_diagnostic.cs8966.severity = warning
+dotnet_diagnostic.cs8971.severity = warning
+dotnet_diagnostic.cs8981.severity = warning
+dotnet_diagnostic.cs9042.severity = warning
+dotnet_diagnostic.cs9073.severity = warning
+dotnet_diagnostic.cs9074.severity = warning
+dotnet_diagnostic.cs9080.severity = warning
+dotnet_diagnostic.cs9081.severity = warning
+dotnet_diagnostic.cs9082.severity = warning
+dotnet_diagnostic.cs9083.severity = warning
+dotnet_diagnostic.cs9084.severity = warning
+dotnet_diagnostic.cs9085.severity = warning
+dotnet_diagnostic.cs9086.severity = warning
+dotnet_diagnostic.cs9087.severity = warning
+dotnet_diagnostic.cs9088.severity = warning
+dotnet_diagnostic.cs9089.severity = warning
+dotnet_diagnostic.cs9090.severity = warning
+dotnet_diagnostic.cs9091.severity = warning
+dotnet_diagnostic.cs9092.severity = warning
+dotnet_diagnostic.cs9093.severity = warning
+dotnet_diagnostic.cs9094.severity = warning
+dotnet_diagnostic.cs9095.severity = warning
+dotnet_diagnostic.cs9097.severity = warning
+dotnet_diagnostic.wme006.severity = warning
+dotnet_naming_rule.constants_rule.import_to_resharper = as_predefined
+dotnet_naming_rule.constants_rule.severity = warning
+dotnet_naming_rule.constants_rule.style = upper_camel_case_style
+dotnet_naming_rule.constants_rule.symbols = constants_symbols
+dotnet_naming_rule.event_rule.import_to_resharper = as_predefined
+dotnet_naming_rule.event_rule.severity = warning
+dotnet_naming_rule.event_rule.style = upper_camel_case_style
+dotnet_naming_rule.event_rule.symbols = event_symbols
+dotnet_naming_rule.interfaces_rule.import_to_resharper = as_predefined
+dotnet_naming_rule.interfaces_rule.severity = warning
+dotnet_naming_rule.interfaces_rule.style = i_upper_camel_case_style
+dotnet_naming_rule.interfaces_rule.symbols = interfaces_symbols
+dotnet_naming_rule.locals_rule.import_to_resharper = as_predefined
+dotnet_naming_rule.locals_rule.severity = warning
+dotnet_naming_rule.locals_rule.style = lower_camel_case_style_1
+dotnet_naming_rule.locals_rule.symbols = locals_symbols
+dotnet_naming_rule.local_constants_rule.import_to_resharper = as_predefined
+dotnet_naming_rule.local_constants_rule.severity = warning
+dotnet_naming_rule.local_constants_rule.style = lower_camel_case_style_1
+dotnet_naming_rule.local_constants_rule.symbols = local_constants_symbols
+dotnet_naming_rule.local_functions_rule.import_to_resharper = as_predefined
+dotnet_naming_rule.local_functions_rule.severity = warning
+dotnet_naming_rule.local_functions_rule.style = upper_camel_case_style
+dotnet_naming_rule.local_functions_rule.symbols = local_functions_symbols
+dotnet_naming_rule.method_rule.import_to_resharper = as_predefined
+dotnet_naming_rule.method_rule.severity = warning
+dotnet_naming_rule.method_rule.style = upper_camel_case_style
+dotnet_naming_rule.method_rule.symbols = method_symbols
+dotnet_naming_rule.parameters_rule.import_to_resharper = as_predefined
+dotnet_naming_rule.parameters_rule.severity = warning
+dotnet_naming_rule.parameters_rule.style = lower_camel_case_style_1
+dotnet_naming_rule.parameters_rule.symbols = parameters_symbols
+dotnet_naming_rule.private_constants_rule.import_to_resharper = as_predefined
+dotnet_naming_rule.private_constants_rule.severity = warning
+dotnet_naming_rule.private_constants_rule.style = upper_camel_case_style
+dotnet_naming_rule.private_constants_rule.symbols = private_constants_symbols
+dotnet_naming_rule.private_instance_fields_rule.import_to_resharper = as_predefined
+dotnet_naming_rule.private_instance_fields_rule.severity = warning
+dotnet_naming_rule.private_instance_fields_rule.style = lower_camel_case_style
+dotnet_naming_rule.private_instance_fields_rule.symbols = private_instance_fields_symbols
+dotnet_naming_rule.private_static_fields_rule.import_to_resharper = as_predefined
+dotnet_naming_rule.private_static_fields_rule.severity = warning
+dotnet_naming_rule.private_static_fields_rule.style = lower_camel_case_style
+dotnet_naming_rule.private_static_fields_rule.symbols = private_static_fields_symbols
+dotnet_naming_rule.private_static_readonly_rule.import_to_resharper = as_predefined
+dotnet_naming_rule.private_static_readonly_rule.severity = warning
+dotnet_naming_rule.private_static_readonly_rule.style = upper_camel_case_style
+dotnet_naming_rule.private_static_readonly_rule.symbols = private_static_readonly_symbols
+dotnet_naming_rule.property_rule.import_to_resharper = as_predefined
+dotnet_naming_rule.property_rule.severity = warning
+dotnet_naming_rule.property_rule.style = upper_camel_case_style
+dotnet_naming_rule.property_rule.symbols = property_symbols
+dotnet_naming_rule.public_fields_rule.import_to_resharper = as_predefined
+dotnet_naming_rule.public_fields_rule.severity = warning
+dotnet_naming_rule.public_fields_rule.style = upper_camel_case_style
+dotnet_naming_rule.public_fields_rule.symbols = public_fields_symbols
+dotnet_naming_rule.static_readonly_rule.import_to_resharper = as_predefined
+dotnet_naming_rule.static_readonly_rule.severity = warning
+dotnet_naming_rule.static_readonly_rule.style = upper_camel_case_style
+dotnet_naming_rule.static_readonly_rule.symbols = static_readonly_symbols
+dotnet_naming_rule.types_and_namespaces_rule.import_to_resharper = as_predefined
+dotnet_naming_rule.types_and_namespaces_rule.severity = warning
+dotnet_naming_rule.types_and_namespaces_rule.style = upper_camel_case_style
+dotnet_naming_rule.types_and_namespaces_rule.symbols = types_and_namespaces_symbols
+dotnet_naming_rule.type_parameters_rule.import_to_resharper = as_predefined
+dotnet_naming_rule.type_parameters_rule.severity = warning
+dotnet_naming_rule.type_parameters_rule.style = t_upper_camel_case_style
+dotnet_naming_rule.type_parameters_rule.symbols = type_parameters_symbols
+dotnet_naming_style.i_upper_camel_case_style.capitalization = pascal_case
+dotnet_naming_style.i_upper_camel_case_style.required_prefix = I
+dotnet_naming_style.lower_camel_case_style.capitalization = camel_case
+dotnet_naming_style.lower_camel_case_style.required_prefix = _
+dotnet_naming_style.lower_camel_case_style_1.capitalization = camel_case
+dotnet_naming_style.t_upper_camel_case_style.capitalization = pascal_case
+dotnet_naming_style.t_upper_camel_case_style.required_prefix = T
+dotnet_naming_style.upper_camel_case_style.capitalization = pascal_case
+dotnet_naming_symbols.constants_symbols.applicable_accessibilities = public, internal, protected, protected_internal, private_protected
+dotnet_naming_symbols.constants_symbols.applicable_kinds = field
+dotnet_naming_symbols.constants_symbols.required_modifiers = const
+dotnet_naming_symbols.event_symbols.applicable_accessibilities = *
+dotnet_naming_symbols.event_symbols.applicable_kinds = event
+dotnet_naming_symbols.interfaces_symbols.applicable_accessibilities = *
+dotnet_naming_symbols.interfaces_symbols.applicable_kinds = interface
+dotnet_naming_symbols.locals_symbols.applicable_accessibilities = *
+dotnet_naming_symbols.locals_symbols.applicable_kinds = local
+dotnet_naming_symbols.local_constants_symbols.applicable_accessibilities = *
+dotnet_naming_symbols.local_constants_symbols.applicable_kinds = local
+dotnet_naming_symbols.local_constants_symbols.required_modifiers = const
+dotnet_naming_symbols.local_functions_symbols.applicable_accessibilities = *
+dotnet_naming_symbols.local_functions_symbols.applicable_kinds = local_function
+dotnet_naming_symbols.method_symbols.applicable_accessibilities = *
+dotnet_naming_symbols.method_symbols.applicable_kinds = method
+dotnet_naming_symbols.parameters_symbols.applicable_accessibilities = *
+dotnet_naming_symbols.parameters_symbols.applicable_kinds = parameter
+dotnet_naming_symbols.private_constants_symbols.applicable_accessibilities = private
+dotnet_naming_symbols.private_constants_symbols.applicable_kinds = field
+dotnet_naming_symbols.private_constants_symbols.required_modifiers = const
+dotnet_naming_symbols.private_instance_fields_symbols.applicable_accessibilities = private
+dotnet_naming_symbols.private_instance_fields_symbols.applicable_kinds = field
+dotnet_naming_symbols.private_static_fields_symbols.applicable_accessibilities = private
+dotnet_naming_symbols.private_static_fields_symbols.applicable_kinds = field
+dotnet_naming_symbols.private_static_fields_symbols.required_modifiers = static
+dotnet_naming_symbols.private_static_readonly_symbols.applicable_accessibilities = private
+dotnet_naming_symbols.private_static_readonly_symbols.applicable_kinds = field
+dotnet_naming_symbols.private_static_readonly_symbols.required_modifiers = static, readonly
+dotnet_naming_symbols.property_symbols.applicable_accessibilities = *
+dotnet_naming_symbols.property_symbols.applicable_kinds = property
+dotnet_naming_symbols.public_fields_symbols.applicable_accessibilities = public, internal, protected, protected_internal, private_protected
+dotnet_naming_symbols.public_fields_symbols.applicable_kinds = field
+dotnet_naming_symbols.static_readonly_symbols.applicable_accessibilities = public, internal, protected, protected_internal, private_protected
+dotnet_naming_symbols.static_readonly_symbols.applicable_kinds = field
+dotnet_naming_symbols.static_readonly_symbols.required_modifiers = static, readonly
+dotnet_naming_symbols.types_and_namespaces_symbols.applicable_accessibilities = *
+dotnet_naming_symbols.types_and_namespaces_symbols.applicable_kinds = namespace, class, struct, enum, delegate
+dotnet_naming_symbols.type_parameters_symbols.applicable_accessibilities = *
+dotnet_naming_symbols.type_parameters_symbols.applicable_kinds = type_parameter
+dotnet_separate_import_directive_groups = false
+dotnet_sort_system_directives_first = true
+dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:none
+dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:none
+dotnet_style_parentheses_in_relational_binary_operators = never_if_unnecessary:none
+dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion
+dotnet_style_predefined_type_for_member_access = true:suggestion
+dotnet_style_qualification_for_event = false:suggestion
+dotnet_style_qualification_for_field = false:suggestion
+dotnet_style_qualification_for_method = false:suggestion
+dotnet_style_qualification_for_property = false:suggestion
+dotnet_style_require_accessibility_modifiers = for_non_interface_members:error
+file_header_template = # ReSharper properties
+
+
+resharper_alignment_tab_fill_style = use_spaces
+resharper_align_first_arg_by_paren = false
+resharper_align_linq_query = false
+resharper_align_multiline_array_and_object_initializer = false
+resharper_align_multiline_array_initializer = true
+resharper_align_multiline_binary_patterns = false
+resharper_align_multiline_ctor_init = true
+resharper_align_multiline_expression_braces = false
+resharper_align_multiline_implements_list = true
+resharper_align_multiline_list_pattern = false
+resharper_align_multiline_property_pattern = false
+resharper_align_multiline_statement_conditions = true
+resharper_align_multiline_switch_expression = false
+resharper_align_multiline_type_argument = true
+resharper_align_multiline_type_parameter = true
+resharper_align_multline_type_parameter_constrains = false
+resharper_align_multline_type_parameter_list = false
+resharper_align_ternary = align_not_nested
+resharper_align_tuple_components = false
+resharper_allow_alias = true
+resharper_allow_comment_after_lbrace = false
+resharper_always_use_end_of_line_brace_style = false
+resharper_apply_auto_detected_rules = false
+resharper_apply_on_completion = false
+resharper_arguments_anonymous_function = positional
+resharper_arguments_literal = positional
+resharper_arguments_named = positional
+resharper_arguments_other = positional
+resharper_arguments_skip_single = false
+resharper_arguments_string_literal = positional
+resharper_attribute_style = do_not_touch
+resharper_autodetect_indent_settings = true
+resharper_blank_lines_after_access_specifier = 0
+resharper_blank_lines_after_block_statements = 1
+resharper_blank_lines_after_case = 0
+resharper_blank_lines_after_control_transfer_statements = 0
+resharper_blank_lines_after_file_scoped_namespace_directive = 1
+resharper_blank_lines_after_imports = 1
+resharper_blank_lines_after_multiline_statements = 0
+resharper_blank_lines_after_options = 1
+resharper_blank_lines_after_start_comment = 1
+resharper_blank_lines_after_using_list = 1
+resharper_blank_lines_around_accessor = 0
+resharper_blank_lines_around_auto_property = 1
+resharper_blank_lines_around_block_case_section = 0
+resharper_blank_lines_around_class_definition = 1
+resharper_blank_lines_around_field = 1
+resharper_blank_lines_around_function_declaration = 0
+resharper_blank_lines_around_function_definition = 1
+resharper_blank_lines_around_global_attribute = 0
+resharper_blank_lines_around_invocable = 1
+resharper_blank_lines_around_local_method = 1
+resharper_blank_lines_around_multiline_case_section = 0
+resharper_blank_lines_around_namespace = 1
+resharper_blank_lines_around_other_declaration = 0
+resharper_blank_lines_around_property = 1
+resharper_blank_lines_around_razor_functions = 1
+resharper_blank_lines_around_razor_helpers = 1
+resharper_blank_lines_around_razor_sections = 1
+resharper_blank_lines_around_region = 1
+resharper_blank_lines_around_single_line_accessor = 0
+resharper_blank_lines_around_single_line_auto_property = 0
+resharper_blank_lines_around_single_line_field = 0
+resharper_blank_lines_around_single_line_function_definition = 0
+resharper_blank_lines_around_single_line_invocable = 0
+resharper_blank_lines_around_single_line_local_method = 0
+resharper_blank_lines_around_single_line_property = 0
+resharper_blank_lines_around_single_line_type = 1
+resharper_blank_lines_around_type = 1
+resharper_blank_lines_before_access_specifier = 1
+resharper_blank_lines_before_block_statements = 0
+resharper_blank_lines_before_case = 0
+resharper_blank_lines_before_control_transfer_statements = 0
+resharper_blank_lines_before_multiline_statements = 0
+resharper_blank_lines_before_single_line_comment = 0
+resharper_blank_lines_inside_namespace = 0
+resharper_blank_lines_inside_region = 1
+resharper_blank_lines_inside_type = 0
+resharper_blank_line_after_pi = true
+resharper_braces_for_dowhile = required
+resharper_braces_for_fixed = required
+resharper_braces_for_for = not_required
+resharper_braces_for_foreach = not_required
+resharper_braces_for_ifelse = not_required
+resharper_braces_for_lock = required
+resharper_braces_for_using = required
+resharper_braces_for_while = not_required
+resharper_braces_redundant = true
+resharper_break_template_declaration = line_break
+resharper_builtin_type_apply_to_native_integer = false
+resharper_can_use_global_alias = true
+resharper_configure_await_analysis_mode = disabled
+resharper_continuous_indent_multiplier = 1
+resharper_continuous_line_indent = single
+public virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualresharper_csharp_align_multiline_argument = false
+resharper_csharp_align_multiline_binary_expressions_chain = true
+resharper_csharp_align_multiline_calls_chain = false
+resharper_csharp_align_multiline_expression = false
+resharper_csharp_align_multiline_extends_list = false
+resharper_csharp_align_multiline_for_stmt = false
+resharper_csharp_align_multiline_parameter = false
+resharper_csharp_align_multiple_declaration = false
+resharper_csharp_allow_far_alignment = true
+resharper_csharp_empty_block_style = together_same_line
+resharper_csharp_insert_final_newline = false
+resharper_csharp_keep_blank_lines_in_code = 1
+resharper_csharp_keep_blank_lines_in_declarations = 1
+resharper_csharp_max_line_length = 180
+resharper_csharp_naming_rule.constants = AaBb
+resharper_csharp_naming_rule.enum_member = AaBb
+resharper_csharp_naming_rule.local_constants = aaBb
+resharper_csharp_naming_rule.method_property_event = AaBb
+resharper_csharp_naming_rule.other = AaBb
+resharper_csharp_naming_rule.private_constants = AaBb
+resharper_csharp_naming_rule.private_static_fields = _ + aaBb
+resharper_csharp_naming_rule.private_static_readonly = AaBb
+resharper_csharp_naming_rule.static_readonly = AaBb
+resharper_csharp_new_line_before_while = false
+resharper_csharp_prefer_qualified_reference = false
+resharper_csharp_space_after_unary_operator = false
+resharper_csharp_stick_comment = false
+resharper_csharp_wrap_lines = true
+resharper_cxxcli_property_declaration_braces = next_line
+resharper_default_exception_variable_name = e
+resharper_default_value_when_type_evident = default_literal
+resharper_default_value_when_type_not_evident = default_literal
+resharper_delete_quotes_from_solid_values = false
+resharper_disable_blank_line_changes = false
+resharper_disable_formatter = false
+resharper_disable_indenter = false
+resharper_disable_int_align = false
+resharper_disable_line_break_changes = false
+resharper_disable_line_break_removal = false
+resharper_disable_space_changes = false
+resharper_disable_space_changes_before_trailing_comment = false
+resharper_dont_remove_extra_blank_lines = false
+resharper_enable_wrapping = false
+resharper_enforce_line_ending_style = false
+resharper_event_handler_pattern_long = $object$On$event$
+resharper_event_handler_pattern_short = On$event$
+resharper_export_declaration_braces = next_line
+resharper_expression_braces = inside
+resharper_expression_pars = inside
+resharper_extra_spaces = remove_all
+resharper_force_attribute_style = separate
+resharper_force_chop_compound_do_expression = false
+resharper_force_chop_compound_if_expression = false
+resharper_force_chop_compound_while_expression = false
+resharper_formatter_off_tag = @formatter:off
+resharper_formatter_on_tag = @formatter:on
+resharper_formatter_tags_accept_regexp = false
+resharper_formatter_tags_enabled = true
+resharper_format_leading_spaces_decl = false
+resharper_free_block_braces = next_line
+resharper_function_declaration_return_type_style = do_not_change
+resharper_function_definition_return_type_style = do_not_change
+resharper_generator_mode = false
+resharper_html_allow_far_alignment = true
+resharper_html_attribute_indent = align_by_first_attribute
+resharper_html_insert_final_newline = false
+resharper_html_linebreak_before_elements = body, div, p, form, h1, h2, h3
+resharper_html_max_blank_lines_between_tags = 2
+resharper_html_max_line_length = 180
+resharper_html_pi_attribute_style = on_single_line
+resharper_html_space_before_self_closing = false
+resharper_html_wrap_lines = true
+resharper_ignore_space_preservation = false
+resharper_include_prefix_comment_in_indent = false
+resharper_indent_access_specifiers_from_class = false
+resharper_indent_aligned_ternary = true
+resharper_indent_anonymous_method_block = false
+resharper_indent_braces_inside_statement_conditions = true
+resharper_indent_case_from_select = true
+resharper_indent_child_elements = OneIndent
+resharper_indent_class_members_from_access_specifiers = false
+resharper_indent_comment = true
+resharper_indent_export_declaration_members = true
+resharper_indent_inside_namespace = true
+resharper_indent_invocation_pars = inside
+resharper_indent_method_decl_pars = inside
+resharper_indent_nested_fixed_stmt = true
+resharper_indent_nested_foreach_stmt = true
+resharper_indent_nested_for_stmt = true
+resharper_indent_nested_lock_stmt = true
+resharper_indent_nested_usings_stmt = true
+resharper_indent_nested_while_stmt = true
+resharper_indent_pars = inside
+resharper_indent_preprocessor_directives = none
+resharper_indent_preprocessor_if = no_indent
+resharper_indent_preprocessor_other = no_indent
+resharper_indent_preprocessor_region = no_indent
+resharper_indent_statement_pars = inside
+resharper_indent_text = OneIndent
+resharper_indent_typearg_angles = inside
+resharper_indent_typeparam_angles = inside
+resharper_indent_type_constraints = true
+resharper_indent_wrapped_function_names = false
+resharper_instance_members_qualify_declared_in = this_class, base_class
+resharper_int_align = false
+resharper_int_align_comments = false
+resharper_int_align_declaration_names = false
+resharper_int_align_enum_initializers = false
+resharper_int_align_eq = false
+resharper_int_align_fix_in_adjacent = true
+resharper_keep_existing_attribute_arrangement = false
+resharper_keep_existing_declaration_block_arrangement = false
+resharper_keep_existing_declaration_parens_arrangement = true
+resharper_keep_existing_embedded_arrangement = true
+resharper_keep_existing_embedded_block_arrangement = false
+resharper_keep_existing_enum_arrangement = false
+resharper_keep_existing_expr_member_arrangement = true
+resharper_keep_existing_invocation_parens_arrangement = true
+resharper_keep_existing_list_patterns_arrangement = true
+resharper_keep_existing_property_patterns_arrangement = true
+resharper_keep_existing_switch_expression_arrangement = true
+resharper_keep_nontrivial_alias = true
+resharper_keep_user_linebreaks = true
+resharper_keep_user_wrapping = true
+resharper_linebreaks_around_razor_statements = true
+resharper_linebreaks_inside_tags_for_elements_longer_than = 2147483647
+resharper_linebreaks_inside_tags_for_elements_with_child_elements = true
+resharper_linebreaks_inside_tags_for_multiline_elements = true
+resharper_linebreak_before_all_elements = false
+resharper_linebreak_before_multiline_elements = true
+resharper_linebreak_before_singleline_elements = false
+resharper_line_break_after_colon_in_member_initializer_lists = do_not_change
+resharper_line_break_after_comma_in_member_initializer_lists = false
+resharper_line_break_after_init_statement = do_not_change
+resharper_line_break_before_comma_in_member_initializer_lists = false
+resharper_line_break_before_requires_clause = do_not_change
+resharper_linkage_specification_braces = end_of_line
+resharper_linkage_specification_indentation = none
+resharper_local_function_body = expression_body
+resharper_macro_block_begin =
+resharper_macro_block_end =
+resharper_max_array_initializer_elements_on_line = 10000
+resharper_max_attribute_length_for_same_line = 38
+resharper_max_enum_members_on_line = 3
+resharper_max_formal_parameters_on_line = 10000
+resharper_max_initializer_elements_on_line = 4
+resharper_max_invocation_arguments_on_line = 10000
+resharper_member_initializer_list_style = do_not_change
+resharper_namespace_declaration_braces = next_line
+resharper_namespace_indentation = all
+resharper_nested_ternary_style = autodetect
+resharper_new_line_before_catch = true
+resharper_new_line_before_else = true
+resharper_new_line_before_enumerators = true
+resharper_normalize_tag_names = false
+resharper_no_indent_inside_elements =
+resharper_no_indent_inside_if_element_longer_than = 2000000
+resharper_null_checking_pattern_style = not_null_pattern
+resharper_object_creation_when_type_evident = target_typed
+resharper_object_creation_when_type_not_evident = explicitly_typed
+resharper_old_engine = false
+resharper_outdent_binary_ops = false
+resharper_outdent_binary_pattern_ops = false
+resharper_outdent_commas = false
+resharper_outdent_dots = false
+resharper_outdent_namespace_member = false
+resharper_outdent_statement_labels = true
+resharper_outdent_ternary_ops = false
+resharper_parentheses_non_obvious_operations = none, shift, bitwise_and, bitwise_exclusive_or, bitwise_inclusive_or, bitwise
+resharper_parentheses_redundancy_style = remove_if_not_clarifies_precedence
+resharper_parentheses_same_type_operations = true
+resharper_pi_attributes_indent = align_by_first_attribute
+resharper_place_accessorholder_attribute_on_same_line = false
+resharper_place_accessor_attribute_on_same_line = if_owner_is_single_line
+resharper_place_comments_at_first_column = false
+resharper_place_constructor_initializer_on_same_line = true
+resharper_place_event_attribute_on_same_line = false
+resharper_place_expr_accessor_on_single_line = if_owner_is_single_line
+resharper_place_expr_method_on_single_line = if_owner_is_single_line
+resharper_place_expr_property_on_single_line = if_owner_is_single_line
+resharper_place_field_attribute_on_same_line = true
+resharper_place_linq_into_on_new_line = true
+resharper_place_method_attribute_on_same_line = false
+resharper_place_namespace_definitions_on_same_line = false
+resharper_place_property_attribute_on_same_line = false
+resharper_place_record_field_attribute_on_same_line = if_owner_is_single_line
+resharper_place_simple_case_statement_on_same_line = false
+resharper_place_simple_embedded_statement_on_same_line = if_owner_is_single_line
+resharper_place_simple_initializer_on_single_line = true
+resharper_place_simple_list_pattern_on_single_line = true
+resharper_place_simple_property_pattern_on_single_line = true
+resharper_place_simple_switch_expression_on_single_line = false
+resharper_place_type_attribute_on_same_line = false
+resharper_place_type_constraints_on_same_line = true
+resharper_prefer_explicit_discard_declaration = false
+resharper_prefer_separate_deconstructed_variables_declaration = false
+resharper_preserve_spaces_inside_tags = pre, textarea
+resharper_qualified_using_at_nested_scope = false
+resharper_quote_style = doublequoted
+resharper_razor_prefer_qualified_reference = true
+resharper_remove_blank_lines_near_braces = false
+resharper_remove_blank_lines_near_braces_in_code = true
+resharper_remove_blank_lines_near_braces_in_declarations = true
+resharper_remove_this_qualifier = true
+resharper_requires_expression_braces = next_line
+resharper_resx_allow_far_alignment = false
+resharper_resx_attribute_indent = single_indent
+resharper_resx_insert_final_newline = false
+resharper_resx_linebreak_before_elements =
+resharper_resx_max_blank_lines_between_tags = 0
+resharper_resx_max_line_length = 2147483647
+resharper_resx_pi_attribute_style = do_not_touch
+resharper_resx_space_before_self_closing = false
+resharper_resx_wrap_lines = false
+resharper_resx_wrap_tags_and_pi = false
+resharper_resx_wrap_text = false
+resharper_show_autodetect_configure_formatting_tip = true
+resharper_simple_block_style = do_not_change
+resharper_simple_case_statement_style = do_not_change
+resharper_simple_embedded_statement_style = do_not_change
+resharper_sort_attributes = false
+resharper_sort_class_selectors = false
+resharper_sort_usings = true
+resharper_sort_usings_lowercase_first = false
+resharper_spaces_around_eq_in_attribute = false
+resharper_spaces_around_eq_in_pi_attribute = false
+resharper_spaces_inside_tags = false
+resharper_space_after_attributes = true
+resharper_space_after_attribute_target_colon = true
+resharper_space_after_cast = false
+resharper_space_after_colon = true
+resharper_space_after_colon_in_case = true
+resharper_space_after_colon_in_inheritance_clause = true
+resharper_space_after_comma = true
+resharper_space_after_ellipsis_in_parameter_pack = true
+resharper_space_after_for_colon = true
+resharper_space_after_keywords_in_control_flow_statements = true
+resharper_space_after_last_attribute = false
+resharper_space_after_last_pi_attribute = false
+resharper_space_after_operator_keyword = true
+resharper_space_after_operator_not = false
+resharper_space_after_ptr_in_data_member = true
+resharper_space_after_ptr_in_data_members = false
+resharper_space_after_ptr_in_method = true
+resharper_space_after_ptr_in_nested_declarator = false
+resharper_space_after_ref_in_data_member = true
+resharper_space_after_ref_in_data_members = false
+resharper_space_after_ref_in_method = true
+resharper_space_after_semicolon_in_for_statement = true
+resharper_space_after_ternary_colon = true
+resharper_space_after_ternary_quest = true
+resharper_space_after_triple_slash = true
+resharper_space_after_type_parameter_constraint_colon = true
+resharper_space_around_additive_op = true
+resharper_space_around_alias_eq = true
+resharper_space_around_assignment_op = true
+resharper_space_around_assignment_operator = true
+resharper_space_around_deref_in_trailing_return_type = true
+resharper_space_around_lambda_arrow = true
+resharper_space_around_member_access_operator = false
+resharper_space_around_relational_op = true
+resharper_space_around_shift_op = true
+resharper_space_around_stmt_colon = true
+resharper_space_around_ternary_operator = true
+resharper_space_before_array_rank_parentheses = false
+resharper_space_before_attribute_target_colon = false
+resharper_space_before_checked_parentheses = false
+resharper_space_before_colon = false
+resharper_space_before_colon_in_case = false
+resharper_space_before_colon_in_inheritance_clause = true
+resharper_space_before_comma = false
+resharper_space_before_default_parentheses = false
+resharper_space_before_ellipsis_in_parameter_pack = false
+resharper_space_before_empty_invocation_parentheses = false
+resharper_space_before_empty_method_parentheses = false
+resharper_space_before_for_colon = true
+resharper_space_before_initializer_braces = false
+resharper_space_before_invocation_parentheses = false
+resharper_space_before_label_colon = false
+resharper_space_before_lambda_parentheses = false
+resharper_space_before_method_parentheses = false
+resharper_space_before_nameof_parentheses = false
+resharper_space_before_new_parentheses = false
+resharper_space_before_nullable_mark = false
+resharper_space_before_open_square_brackets = false
+resharper_space_before_pointer_asterik_declaration = false
+resharper_space_before_postfix_operator = false
+resharper_space_before_ptr_in_abstract_decl = false
+resharper_space_before_ptr_in_data_member = false
+resharper_space_before_ptr_in_data_members = true
+resharper_space_before_ptr_in_method = false
+resharper_space_before_ref_in_abstract_decl = false
+resharper_space_before_ref_in_data_member = false
+resharper_space_before_ref_in_data_members = true
+resharper_space_before_ref_in_method = false
+resharper_space_before_semicolon = false
+resharper_space_before_semicolon_in_for_statement = false
+resharper_space_before_singleline_accessorholder = true
+resharper_space_before_sizeof_parentheses = false
+resharper_space_before_template_args = false
+resharper_space_before_template_params = true
+resharper_space_before_ternary_colon = true
+resharper_space_before_ternary_quest = true
+resharper_space_before_trailing_comment = true
+resharper_space_before_typeof_parentheses = false
+resharper_space_before_type_argument_angle = false
+resharper_space_before_type_parameter_angle = false
+resharper_space_before_type_parameter_constraint_colon = true
+resharper_space_before_type_parameter_parentheses = true
+resharper_space_between_accessors_in_singleline_property = true
+resharper_space_between_attribute_sections = true
+resharper_space_between_closing_angle_brackets_in_template_args = false
+resharper_space_between_keyword_and_expression = true
+resharper_space_between_keyword_and_type = true
+resharper_space_between_method_call_empty_parameter_list_parentheses = false
+resharper_space_between_method_call_name_and_opening_parenthesis = false
+resharper_space_between_method_call_parameter_list_parentheses = false
+resharper_space_between_method_declaration_empty_parameter_list_parentheses = false
+resharper_space_between_method_declaration_name_and_open_parenthesis = false
+resharper_space_between_method_declaration_parameter_list_parentheses = false
+resharper_space_between_parentheses_of_control_flow_statements = false
+resharper_space_between_square_brackets = false
+resharper_space_between_typecast_parentheses = false
+resharper_space_in_singleline_accessorholder = true
+resharper_space_in_singleline_anonymous_method = true
+resharper_space_in_singleline_method = true
+resharper_space_near_postfix_and_prefix_op = false
+resharper_space_within_array_initialization_braces = false
+resharper_space_within_array_rank_empty_parentheses = false
+resharper_space_within_array_rank_parentheses = false
+resharper_space_within_attribute_angles = false
+resharper_space_within_checked_parentheses = false
+resharper_space_within_declaration_parentheses = false
+resharper_space_within_default_parentheses = false
+resharper_space_within_empty_braces = true
+resharper_space_within_empty_initializer_braces = false
+resharper_space_within_empty_invocation_parentheses = false
+resharper_space_within_empty_method_parentheses = false
+resharper_space_within_empty_template_params = false
+resharper_space_within_expression_parentheses = false
+resharper_space_within_initializer_braces = false
+resharper_space_within_invocation_parentheses = false
+resharper_space_within_method_parentheses = false
+resharper_space_within_nameof_parentheses = false
+resharper_space_within_new_parentheses = false
+resharper_space_within_parentheses = false
+resharper_space_within_single_line_array_initializer_braces = true
+resharper_space_within_sizeof_parentheses = false
+resharper_space_within_slice_pattern = true
+resharper_space_within_template_args = false
+resharper_space_within_template_params = false
+resharper_space_within_tuple_parentheses = false
+resharper_space_within_typeof_parentheses = false
+resharper_space_within_type_argument_angles = false
+resharper_space_within_type_parameter_angles = false
+resharper_space_within_type_parameter_parentheses = false
+resharper_special_else_if_treatment = true
+resharper_static_members_qualify_members = none
+resharper_static_members_qualify_with = declared_type
+resharper_support_vs_event_naming_pattern = true
+resharper_t4_allow_far_alignment = false
+resharper_t4_insert_final_newline = false
+resharper_t4_max_line_length = 180
+resharper_t4_wrap_lines = true
+resharper_toplevel_function_declaration_return_type_style = do_not_change
+resharper_toplevel_function_definition_return_type_style = do_not_change
+resharper_trailing_comma_in_multiline_lists = false
+resharper_trailing_comma_in_singleline_lists = false
+resharper_use_continuous_indent_inside_initializer_braces = false
+resharper_use_continuous_indent_inside_parens = true
+resharper_use_continuous_line_indent_in_expression_braces = false
+resharper_use_continuous_line_indent_in_method_pars = false
+resharper_use_indents_from_main_language_in_file = true
+resharper_use_indent_from_previous_element = true
+resharper_use_indent_from_vs = false
+resharper_use_roslyn_logic_for_evident_types = false
+public virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualresharper_wrap_after_binary_opsign = true
+resharper_wrap_after_declaration_lpar = false
+resharper_wrap_after_dot = false
+resharper_wrap_after_dot_in_method_calls = false
+resharper_wrap_after_expression_lbrace = true
+resharper_wrap_after_invocation_lpar = false
+resharper_wrap_arguments_style = wrap_if_long
+resharper_wrap_around_elements = true
+resharper_wrap_array_initializer_style = wrap_if_long
+resharper_wrap_base_clause_style = wrap_if_long
+resharper_wrap_before_arrow_with_expressions = false
+resharper_wrap_before_binary_opsign = false
+resharper_wrap_before_binary_pattern_op = true
+resharper_wrap_before_colon = false
+resharper_wrap_before_comma = false
+resharper_wrap_before_comma_in_base_clause = false
+resharper_wrap_before_declaration_lpar = false
+resharper_wrap_before_declaration_rpar = false
+resharper_wrap_before_eq = false
+resharper_wrap_before_expression_rbrace = true
+resharper_wrap_before_extends_colon = false
+resharper_wrap_before_first_type_parameter_constraint = false
+resharper_wrap_before_invocation_lpar = false
+resharper_wrap_before_invocation_rpar = false
+resharper_wrap_before_linq_expression = false
+resharper_wrap_before_ternary_opsigns = true
+resharper_wrap_before_type_parameter_langle = false
+resharper_wrap_braced_init_list_style = wrap_if_long
+resharper_wrap_chained_binary_expressions = wrap_if_long
+resharper_wrap_chained_binary_patterns = wrap_if_long
+resharper_wrap_chained_method_calls = wrap_if_long
+resharper_wrap_ctor_initializer_style = wrap_if_long
+resharper_wrap_enumeration_style = chop_if_long
+resharper_wrap_enum_declaration = chop_always
+resharper_wrap_extends_list_style = wrap_if_long
+resharper_wrap_for_stmt_header_style = chop_if_long
+resharper_wrap_list_pattern = wrap_if_long
+resharper_wrap_multiple_declaration_style = chop_if_long
+resharper_wrap_multiple_type_parameter_constraints_style = chop_if_long
+resharper_wrap_object_and_collection_initializer_style = chop_if_long
+resharper_wrap_parameters_style = wrap_if_long
+resharper_wrap_property_pattern = chop_if_long
+resharper_wrap_switch_expression = chop_always
+resharper_wrap_ternary_expr_style = chop_if_long
+resharper_wrap_verbatim_interpolated_strings = no_wrap
+resharper_xmldoc_allow_far_alignment = false
+resharper_xmldoc_attribute_indent = single_indent
+resharper_xmldoc_insert_final_newline = false
+resharper_xmldoc_linebreak_before_elements = summary, remarks, example, returns, param, typeparam, value, para
+resharper_xmldoc_max_blank_lines_between_tags = 0
+resharper_xmldoc_max_line_length = 180
+resharper_xmldoc_pi_attribute_style = do_not_touch
+resharper_xmldoc_space_before_self_closing = true
+resharper_xmldoc_wrap_lines = true
+resharper_xmldoc_wrap_tags_and_pi = true
+resharper_xmldoc_wrap_text = true
+resharper_xml_allow_far_alignment = false
+resharper_xml_attribute_indent = align_by_first_attribute
+resharper_xml_insert_final_newline = false
+resharper_xml_linebreak_before_elements =
+resharper_xml_max_blank_lines_between_tags = 2
+resharper_xml_max_line_length = 180
+resharper_xml_pi_attribute_style = do_not_touch
+resharper_xml_space_before_self_closing = true
+resharper_xml_wrap_lines = true
+resharper_xml_wrap_tags_and_pi = true
+resharper_xml_wrap_text = false
+
+# ReSharper inspection severities
+resharper_access_rights_in_text_highlighting = warning
+resharper_access_to_disposed_closure_highlighting = warning
+resharper_access_to_for_each_variable_in_closure_highlighting = warning
+resharper_access_to_modified_closure_highlighting = warning
+resharper_access_to_static_member_via_derived_type_highlighting = warning
+resharper_address_of_marshal_by_ref_object_highlighting = warning
+resharper_angular_html_banana_highlighting = warning
+resharper_annotate_can_be_null_parameter_highlighting = none
+resharper_annotate_can_be_null_type_member_highlighting = none
+resharper_annotate_not_null_parameter_highlighting = none
+resharper_annotate_not_null_type_member_highlighting = none
+resharper_annotation_conflict_in_hierarchy_highlighting = warning
+resharper_annotation_redundancy_at_value_type_highlighting = warning
+resharper_annotation_redundancy_in_hierarchy_highlighting = warning
+resharper_anonymous_object_destructuring_problem_highlighting = warning
+resharper_arguments_style_anonymous_function_highlighting = none
+resharper_arguments_style_literal_highlighting = none
+resharper_arguments_style_named_expression_highlighting = none
+resharper_arguments_style_other_highlighting = none
+resharper_arguments_style_string_literal_highlighting = none
+resharper_arrange_attributes_highlighting = none
+resharper_arrange_default_value_when_type_evident_highlighting = suggestion
+resharper_arrange_default_value_when_type_not_evident_highlighting = hint
+resharper_arrange_local_function_body_highlighting = none
+resharper_arrange_null_checking_pattern_highlighting = hint
+resharper_arrange_object_creation_when_type_evident_highlighting = suggestion
+resharper_arrange_object_creation_when_type_not_evident_highlighting = hint
+resharper_arrange_redundant_parentheses_highlighting = hint
+resharper_arrange_static_member_qualifier_highlighting = hint
+resharper_arrange_this_qualifier_highlighting = hint
+resharper_arrange_trailing_comma_in_multiline_lists_highlighting = hint
+resharper_arrange_trailing_comma_in_singleline_lists_highlighting = hint
+resharper_arrange_var_keywords_in_deconstructing_declaration_highlighting = suggestion
+resharper_asp_content_placeholder_not_resolved_highlighting = error
+resharper_asp_custom_page_parser_filter_type_highlighting = warning
+resharper_asp_dead_code_highlighting = warning
+resharper_asp_entity_highlighting = warning
+resharper_asp_image_highlighting = warning
+resharper_asp_invalid_control_type_highlighting = error
+resharper_asp_not_resolved_highlighting = error
+resharper_asp_ods_method_reference_resolve_error_highlighting = error
+resharper_asp_resolve_warning_highlighting = warning
+resharper_asp_skin_not_resolved_highlighting = error
+resharper_asp_tag_attribute_with_optional_value_highlighting = warning
+resharper_asp_theme_not_resolved_highlighting = error
+resharper_asp_unused_register_directive_highlighting_highlighting = warning
+resharper_asp_warning_highlighting = warning
+resharper_assignment_in_conditional_expression_highlighting = warning
+resharper_assignment_is_fully_discarded_highlighting = warning
+resharper_assign_null_to_not_null_attribute_highlighting = warning
+resharper_asxx_path_error_highlighting = warning
+resharper_async_iterator_invocation_without_await_foreach_highlighting = warning
+resharper_async_void_lambda_highlighting = warning
+resharper_async_void_method_highlighting = error
+resharper_auto_property_can_be_made_get_only_global_highlighting = suggestion
+resharper_auto_property_can_be_made_get_only_local_highlighting = suggestion
+resharper_bad_attribute_brackets_spaces_highlighting = none
+resharper_bad_braces_spaces_highlighting = none
+resharper_bad_child_statement_indent_highlighting = warning
+resharper_bad_colon_spaces_highlighting = none
+resharper_bad_comma_spaces_highlighting = none
+resharper_bad_control_braces_indent_highlighting = suggestion
+resharper_bad_control_braces_line_breaks_highlighting = none
+resharper_bad_declaration_braces_indent_highlighting = none
+resharper_bad_declaration_braces_line_breaks_highlighting = none
+resharper_bad_empty_braces_line_breaks_highlighting = none
+resharper_bad_expression_braces_indent_highlighting = none
+resharper_bad_expression_braces_line_breaks_highlighting = none
+resharper_bad_generic_brackets_spaces_highlighting = none
+resharper_bad_indent_highlighting = none
+resharper_bad_linq_line_breaks_highlighting = none
+resharper_bad_list_line_breaks_highlighting = none
+resharper_bad_member_access_spaces_highlighting = none
+resharper_bad_namespace_braces_indent_highlighting = none
+resharper_bad_parens_line_breaks_highlighting = none
+resharper_bad_parens_spaces_highlighting = none
+resharper_bad_preprocessor_indent_highlighting = none
+resharper_bad_semicolon_spaces_highlighting = none
+resharper_bad_spaces_after_keyword_highlighting = none
+resharper_bad_square_brackets_spaces_highlighting = none
+resharper_bad_switch_braces_indent_highlighting = none
+resharper_bad_symbol_spaces_highlighting = none
+resharper_base_member_has_params_highlighting = warning
+resharper_base_method_call_with_default_parameter_highlighting = warning
+resharper_base_object_equals_is_object_equals_highlighting = warning
+resharper_base_object_get_hash_code_call_in_get_hash_code_highlighting = warning
+resharper_bitwise_operator_on_enum_without_flags_highlighting = warning
+resharper_blazor_editor_required_highlighting = warning
+resharper_built_in_type_reference_style_for_member_access_highlighting = hint
+resharper_built_in_type_reference_style_highlighting = hint
+resharper_by_ref_argument_is_volatile_field_highlighting = warning
+resharper_cannot_apply_equality_operator_to_type_highlighting = warning
+resharper_can_simplify_dictionary_lookup_with_try_add_highlighting = warning
+resharper_can_simplify_dictionary_lookup_with_try_get_value_highlighting = warning
+resharper_center_tag_is_obsolete_highlighting = warning
+resharper_check_for_reference_equality_instead_1_highlighting = suggestion
+resharper_check_for_reference_equality_instead_2_highlighting = suggestion
+resharper_check_for_reference_equality_instead_3_highlighting = suggestion
+resharper_check_for_reference_equality_instead_4_highlighting = suggestion
+resharper_check_namespace_highlighting = warning
+resharper_class_cannot_be_instantiated_highlighting = warning
+resharper_class_can_be_sealed_global_highlighting = none
+resharper_class_can_be_sealed_local_highlighting = none
+resharper_class_never_instantiated_global_highlighting = suggestion
+resharper_class_never_instantiated_local_highlighting = suggestion
+resharper_class_with_virtual_members_never_inherited_global_highlighting = suggestion
+resharper_class_with_virtual_members_never_inherited_local_highlighting = suggestion
+resharper_clear_attribute_is_obsolete_all_highlighting = warning
+resharper_clear_attribute_is_obsolete_highlighting = warning
+resharper_cognitive_complexity_highlighting = warning
+resharper_collection_never_queried_global_highlighting = warning
+resharper_collection_never_queried_local_highlighting = warning
+resharper_collection_never_updated_global_highlighting = warning
+resharper_collection_never_updated_local_highlighting = warning
+resharper_comment_typo_highlighting = suggestion
+resharper_compare_non_constrained_generic_with_null_highlighting = none
+resharper_compare_of_floats_by_equality_operator_highlighting = warning
+resharper_complex_object_destructuring_problem_highlighting = warning
+resharper_complex_object_in_context_destructuring_problem_highlighting = warning
+resharper_conditional_access_qualifier_is_non_nullable_according_to_api_contract_highlighting = warning
+resharper_conditional_ternary_equal_branch_highlighting = warning
+resharper_condition_is_always_true_or_false_according_to_nullable_api_contract_highlighting = warning
+resharper_condition_is_always_true_or_false_highlighting = warning
+resharper_confusing_char_as_integer_in_constructor_highlighting = warning
+resharper_constant_conditional_access_qualifier_highlighting = warning
+resharper_constant_null_coalescing_condition_highlighting = warning
+resharper_constructor_initializer_loop_highlighting = warning
+resharper_container_annotation_redundancy_highlighting = warning
+resharper_contextual_logger_problem_highlighting = warning
+resharper_context_value_is_provided_highlighting = none
+resharper_contract_annotation_not_parsed_highlighting = warning
+resharper_convert_closure_to_method_group_highlighting = suggestion
+resharper_convert_conditional_ternary_expression_to_switch_expression_highlighting = hint
+resharper_convert_if_do_to_while_highlighting = suggestion
+resharper_convert_if_statement_to_conditional_ternary_expression_highlighting = suggestion
+resharper_convert_if_statement_to_null_coalescing_assignment_highlighting = suggestion
+resharper_convert_if_statement_to_null_coalescing_expression_highlighting = suggestion
+resharper_convert_if_statement_to_return_statement_highlighting = hint
+resharper_convert_if_statement_to_switch_statement_highlighting = hint
+resharper_convert_if_to_or_expression_highlighting = suggestion
+resharper_convert_nullable_to_short_form_highlighting = suggestion
+resharper_convert_switch_statement_to_switch_expression_highlighting = hint
+resharper_convert_to_auto_property_highlighting = suggestion
+resharper_convert_to_auto_property_when_possible_highlighting = hint
+resharper_convert_to_auto_property_with_private_setter_highlighting = hint
+resharper_convert_to_compound_assignment_highlighting = hint
+resharper_convert_to_constant_global_highlighting = hint
+resharper_convert_to_constant_local_highlighting = hint
+resharper_convert_to_lambda_expression_highlighting = suggestion
+resharper_convert_to_local_function_highlighting = suggestion
+resharper_convert_to_null_coalescing_compound_assignment_highlighting = suggestion
+resharper_convert_to_primary_constructor_highlighting = suggestion
+resharper_convert_to_static_class_highlighting = suggestion
+resharper_convert_to_using_declaration_highlighting = suggestion
+resharper_convert_to_vb_auto_property_highlighting = suggestion
+resharper_convert_to_vb_auto_property_when_possible_highlighting = hint
+resharper_convert_to_vb_auto_property_with_private_setter_highlighting = hint
+resharper_convert_type_check_pattern_to_null_check_highlighting = warning
+resharper_convert_type_check_to_null_check_highlighting = none
+resharper_co_variant_array_conversion_highlighting = warning
+public virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualresharper_c_declaration_with_implicit_int_type_highlighting = warning
+resharper_c_sharp_build_cs_invalid_module_name_highlighting = warning
+resharper_c_sharp_missing_plugin_dependency_highlighting = warning
+resharper_default_value_attribute_for_optional_parameter_highlighting = warning
+resharper_double_negation_in_pattern_highlighting = suggestion
+resharper_double_negation_operator_highlighting = suggestion
+resharper_duplicate_resource_highlighting = warning
+resharper_empty_constructor_highlighting = warning
+resharper_empty_destructor_highlighting = warning
+resharper_empty_embedded_statement_highlighting = warning
+resharper_empty_for_statement_highlighting = warning
+resharper_empty_general_catch_clause_highlighting = warning
+resharper_empty_namespace_highlighting = warning
+resharper_empty_region_highlighting = suggestion
+resharper_empty_statement_highlighting = warning
+resharper_empty_title_tag_highlighting = hint
+resharper_enforce_do_while_statement_braces_highlighting = none
+resharper_enforce_fixed_statement_braces_highlighting = none
+resharper_enforce_foreach_statement_braces_highlighting = none
+resharper_enforce_for_statement_braces_highlighting = none
+resharper_enforce_if_statement_braces_highlighting = none
+resharper_enforce_lock_statement_braces_highlighting = none
+resharper_enforce_using_statement_braces_highlighting = none
+resharper_enforce_while_statement_braces_highlighting = none
+resharper_entity_name_captured_only_global_highlighting = warning
+resharper_entity_name_captured_only_local_highlighting = warning
+resharper_enumerable_sum_in_explicit_unchecked_context_highlighting = warning
+resharper_enum_underlying_type_is_int_highlighting = warning
+resharper_equal_expression_comparison_highlighting = warning
+resharper_escaped_keyword_highlighting = warning
+resharper_event_never_invoked_global_highlighting = suggestion
+resharper_event_never_subscribed_to_global_highlighting = suggestion
+resharper_event_never_subscribed_to_local_highlighting = suggestion
+resharper_event_unsubscription_via_anonymous_delegate_highlighting = warning
+resharper_exception_passed_as_template_argument_problem_highlighting = warning
+resharper_explicit_caller_info_argument_highlighting = warning
+resharper_expression_is_always_null_highlighting = warning
+resharper_extract_common_property_pattern_highlighting = hint
+resharper_field_can_be_made_read_only_global_highlighting = suggestion
+resharper_field_can_be_made_read_only_local_highlighting = suggestion
+resharper_field_hides_interface_property_with_default_implementation_highlighting = warning
+resharper_foreach_can_be_converted_to_query_using_another_get_enumerator_highlighting = hint
+resharper_foreach_can_be_partly_converted_to_query_using_another_get_enumerator_highlighting = hint
+resharper_format_string_placeholders_mismatch_highlighting = warning
+resharper_format_string_problem_highlighting = warning
+resharper_for_can_be_converted_to_foreach_highlighting = suggestion
+resharper_for_statement_condition_is_true_highlighting = warning
+resharper_function_complexity_overflow_highlighting = none
+resharper_function_never_returns_highlighting = warning
+resharper_function_recursive_on_all_paths_highlighting = warning
+resharper_gc_suppress_finalize_for_type_without_destructor_highlighting = warning
+resharper_generic_enumerator_not_disposed_highlighting = warning
+resharper_heuristic_unreachable_code_highlighting = warning
+resharper_html_attributes_quotes_highlighting = hint
+resharper_html_attribute_not_resolved_highlighting = warning
+resharper_html_attribute_value_not_resolved_highlighting = warning
+resharper_html_dead_code_highlighting = warning
+resharper_html_event_not_resolved_highlighting = warning
+resharper_html_id_duplication_highlighting = warning
+resharper_html_id_not_resolved_highlighting = warning
+resharper_html_obsolete_highlighting = warning
+resharper_html_path_error_highlighting = warning
+resharper_html_tag_not_closed_highlighting = error
+resharper_html_tag_not_resolved_highlighting = warning
+resharper_html_tag_should_be_self_closed_highlighting = warning
+resharper_html_tag_should_not_be_self_closed_highlighting = warning
+resharper_html_warning_highlighting = warning
+resharper_identifier_typo_highlighting = suggestion
+resharper_ignored_directive_highlighting = warning
+resharper_inactive_preprocessor_branch_highlighting = warning
+resharper_inconsistently_synchronized_field_highlighting = warning
+resharper_inconsistent_context_log_property_naming_highlighting = warning
+resharper_inconsistent_log_property_naming_highlighting = warning
+resharper_inconsistent_naming_highlighting = warning
+resharper_inconsistent_order_of_locks_highlighting = warning
+resharper_incorrect_blank_lines_near_braces_highlighting = none
+resharper_indexing_by_invalid_range_highlighting = warning
+resharper_inheritdoc_consider_usage_highlighting = none
+resharper_inheritdoc_invalid_usage_highlighting = warning
+resharper_inline_out_variable_declaration_highlighting = suggestion
+resharper_inline_temporary_variable_highlighting = hint
+resharper_internal_or_private_member_not_documented_highlighting = none
+resharper_interpolated_string_expression_is_not_i_formattable_highlighting = warning
+resharper_introduce_optional_parameters_global_highlighting = suggestion
+resharper_introduce_optional_parameters_local_highlighting = suggestion
+resharper_int_division_by_zero_highlighting = warning
+resharper_int_variable_overflow_highlighting = warning
+resharper_int_variable_overflow_in_checked_context_highlighting = warning
+resharper_int_variable_overflow_in_unchecked_context_highlighting = warning
+resharper_invalid_value_type_highlighting = warning
+resharper_invalid_xml_doc_comment_highlighting = warning
+resharper_invert_condition_1_highlighting = hint
+resharper_invert_if_highlighting = hint
+resharper_invocation_is_skipped_highlighting = hint
+resharper_invoke_as_extension_method_highlighting = suggestion
+resharper_is_expression_always_false_highlighting = warning
+resharper_is_expression_always_true_highlighting = warning
+resharper_iterator_method_result_is_ignored_highlighting = warning
+resharper_iterator_never_returns_highlighting = warning
+resharper_join_declaration_and_initializer_highlighting = suggestion
+resharper_join_null_check_with_usage_highlighting = suggestion
+resharper_lambda_expression_can_be_made_static_highlighting = none
+resharper_lambda_expression_must_be_static_highlighting = suggestion
+resharper_lambda_should_not_capture_context_highlighting = warning
+resharper_localizable_element_highlighting = warning
+resharper_local_function_can_be_made_static_highlighting = none
+resharper_local_function_hides_method_highlighting = warning
+resharper_local_variable_hides_member_highlighting = warning
+resharper_log_message_is_sentence_problem_highlighting = warning
+resharper_long_literal_ending_lower_l_highlighting = warning
+resharper_loop_can_be_converted_to_query_highlighting = hint
+resharper_loop_can_be_partly_converted_to_query_highlighting = none
+resharper_loop_variable_is_never_changed_inside_loop_highlighting = warning
+resharper_markup_attribute_typo_highlighting = suggestion
+resharper_markup_text_typo_highlighting = suggestion
+resharper_math_abs_method_is_redundant_highlighting = warning
+resharper_math_clamp_min_greater_than_max_highlighting = warning
+resharper_meaningless_default_parameter_value_highlighting = warning
+resharper_member_can_be_file_local_highlighting = none
+resharper_member_can_be_internal_highlighting = none
+resharper_member_can_be_made_static_global_highlighting = hint
+resharper_member_can_be_made_static_local_highlighting = hint
+resharper_member_can_be_private_global_highlighting = suggestion
+resharper_member_can_be_private_local_highlighting = suggestion
+resharper_member_can_be_protected_global_highlighting = suggestion
+resharper_member_can_be_protected_local_highlighting = suggestion
+resharper_member_hides_interface_member_with_default_implementation_highlighting = warning
+resharper_member_hides_static_from_outer_class_highlighting = warning
+resharper_member_initializer_value_ignored_highlighting = warning
+resharper_merge_and_pattern_highlighting = suggestion
+resharper_merge_cast_with_type_check_highlighting = suggestion
+resharper_merge_conditional_expression_highlighting = suggestion
+resharper_merge_into_logical_pattern_highlighting = hint
+resharper_merge_into_negated_pattern_highlighting = hint
+resharper_merge_into_pattern_highlighting = suggestion
+resharper_merge_nested_property_patterns_highlighting = suggestion
+resharper_merge_sequential_checks_highlighting = hint
+resharper_method_has_async_overload_highlighting = suggestion
+resharper_method_has_async_overload_with_cancellation_highlighting = suggestion
+resharper_method_overload_with_optional_parameter_highlighting = warning
+resharper_method_supports_cancellation_highlighting = suggestion
+resharper_missing_alt_attribute_in_img_tag_highlighting = hint
+resharper_missing_blank_lines_highlighting = none
+resharper_missing_body_tag_highlighting = warning
+resharper_missing_head_and_body_tags_highlighting = warning
+resharper_missing_head_tag_highlighting = warning
+resharper_missing_indent_highlighting = none
+resharper_missing_linebreak_highlighting = none
+resharper_missing_space_highlighting = none
+resharper_more_specific_foreach_variable_type_available_highlighting = suggestion
+resharper_move_to_existing_positional_deconstruction_pattern_highlighting = hint
+resharper_move_variable_declaration_inside_loop_condition_highlighting = suggestion
+resharper_multiple_nullable_attributes_usage_highlighting = warning
+resharper_multiple_order_by_highlighting = warning
+resharper_multiple_resolve_candidates_in_text_highlighting = warning
+resharper_multiple_spaces_highlighting = none
+resharper_multiple_statements_on_one_line_highlighting = none
+resharper_multiple_type_members_on_one_line_highlighting = none
+resharper_must_use_return_value_highlighting = warning
+resharper_mvc_action_not_resolved_highlighting = error
+resharper_mvc_area_not_resolved_highlighting = error
+resharper_mvc_controller_not_resolved_highlighting = error
+resharper_mvc_invalid_model_type_highlighting = error
+resharper_mvc_masterpage_not_resolved_highlighting = error
+resharper_mvc_partial_view_not_resolved_highlighting = error
+resharper_mvc_template_not_resolved_highlighting = error
+resharper_mvc_view_component_not_resolved_highlighting = error
+resharper_mvc_view_component_view_not_resolved_highlighting = error
+resharper_mvc_view_not_resolved_highlighting = error
+resharper_negation_of_relational_pattern_highlighting = suggestion
+resharper_negative_equality_expression_highlighting = suggestion
+resharper_negative_index_highlighting = warning
+resharper_nested_string_interpolation_highlighting = suggestion
+resharper_non_atomic_compound_operator_highlighting = warning
+resharper_non_constant_equality_expression_has_constant_result_highlighting = warning
+resharper_non_parsable_element_highlighting = warning
+resharper_non_readonly_member_in_get_hash_code_highlighting = warning
+resharper_non_volatile_field_in_double_check_locking_highlighting = warning
+resharper_not_accessed_field_global_highlighting = suggestion
+resharper_not_accessed_field_local_highlighting = warning
+resharper_not_accessed_out_parameter_variable_highlighting = warning
+resharper_not_accessed_positional_property_global_highlighting = warning
+resharper_not_accessed_positional_property_local_highlighting = warning
+resharper_not_accessed_variable_highlighting = warning
+resharper_not_assigned_out_parameter_highlighting = warning
+resharper_not_declared_in_parent_culture_highlighting = warning
+resharper_not_null_or_required_member_is_not_initialized_highlighting = warning
+resharper_not_observable_annotation_redundancy_highlighting = warning
+resharper_not_overridden_in_specific_culture_highlighting = warning
+resharper_not_resolved_in_text_highlighting = warning
+resharper_no_support_for_vb_highlighting = warning
+resharper_nullable_warning_suppression_is_used_highlighting = none
+resharper_null_coalescing_condition_is_always_not_null_according_to_api_contract_highlighting = warning
+resharper_n_unit_async_method_must_be_task_highlighting = warning
+resharper_n_unit_attribute_produces_too_many_tests_highlighting = none
+resharper_n_unit_auto_fixture_incorrect_argument_type_highlighting = warning
+resharper_n_unit_auto_fixture_missed_test_attribute_highlighting = warning
+resharper_n_unit_auto_fixture_missed_test_or_test_fixture_attribute_highlighting = warning
+resharper_n_unit_auto_fixture_redundant_argument_in_inline_auto_data_attribute_highlighting = warning
+resharper_n_unit_duplicate_values_highlighting = warning
+resharper_n_unit_ignored_parameter_attribute_highlighting = warning
+resharper_n_unit_implicit_unspecified_null_values_highlighting = warning
+resharper_n_unit_incorrect_argument_type_highlighting = warning
+resharper_n_unit_incorrect_expected_result_type_highlighting = warning
+resharper_n_unit_incorrect_range_bounds_highlighting = warning
+resharper_n_unit_method_with_parameters_and_test_attribute_highlighting = warning
+resharper_n_unit_missing_arguments_in_test_case_attribute_highlighting = warning
+resharper_n_unit_non_public_method_with_test_attribute_highlighting = warning
+resharper_n_unit_no_values_provided_highlighting = warning
+resharper_n_unit_parameter_type_is_not_compatible_with_attribute_highlighting = warning
+resharper_n_unit_range_attribute_bounds_are_out_of_range_highlighting = warning
+resharper_n_unit_range_step_sign_mismatch_highlighting = warning
+resharper_n_unit_range_step_value_must_not_be_zero_highlighting = warning
+resharper_n_unit_range_to_value_is_not_reachable_highlighting = warning
+resharper_n_unit_redundant_argument_instead_of_expected_result_highlighting = warning
+resharper_n_unit_redundant_argument_in_test_case_attribute_highlighting = warning
+resharper_n_unit_redundant_expected_result_in_test_case_attribute_highlighting = warning
+resharper_n_unit_test_case_attribute_requires_expected_result_highlighting = warning
+resharper_n_unit_test_case_result_property_duplicates_expected_result_highlighting = warning
+resharper_n_unit_test_case_result_property_is_obsolete_highlighting = warning
+resharper_n_unit_test_case_source_cannot_be_resolved_highlighting = warning
+resharper_n_unit_test_case_source_must_be_field_property_method_highlighting = warning
+resharper_n_unit_test_case_source_must_be_static_highlighting = warning
+resharper_n_unit_test_case_source_should_implement_i_enumerable_highlighting = warning
+resharper_object_creation_as_statement_highlighting = warning
+resharper_obsolete_element_error_highlighting = error
+resharper_obsolete_element_highlighting = warning
+resharper_one_way_operation_contract_with_return_type_highlighting = warning
+resharper_operation_contract_without_service_contract_highlighting = warning
+resharper_operator_is_can_be_used_highlighting = warning
+resharper_operator_without_matched_checked_operator_highlighting = warning
+resharper_optional_parameter_hierarchy_mismatch_highlighting = warning
+resharper_optional_parameter_ref_out_highlighting = warning
+resharper_other_tags_inside_script1_highlighting = error
+resharper_other_tags_inside_script2_highlighting = error
+resharper_other_tags_inside_unclosed_script_highlighting = error
+resharper_outdent_is_off_prev_level_highlighting = none
+resharper_out_parameter_value_is_always_discarded_global_highlighting = suggestion
+resharper_out_parameter_value_is_always_discarded_local_highlighting = warning
+resharper_overridden_with_empty_value_highlighting = warning
+resharper_overridden_with_same_value_highlighting = suggestion
+resharper_parameter_hides_member_highlighting = warning
+resharper_parameter_only_used_for_precondition_check_global_highlighting = suggestion
+resharper_parameter_only_used_for_precondition_check_local_highlighting = warning
+resharper_parameter_type_can_be_enumerable_global_highlighting = hint
+resharper_parameter_type_can_be_enumerable_local_highlighting = hint
+resharper_partial_method_parameter_name_mismatch_highlighting = warning
+resharper_partial_method_with_single_part_highlighting = warning
+resharper_partial_type_with_single_part_highlighting = warning
+resharper_pass_string_interpolation_highlighting = hint
+resharper_pattern_always_matches_highlighting = warning
+resharper_pattern_is_always_true_or_false_highlighting = warning
+resharper_pattern_is_redundant_highlighting = warning
+resharper_pattern_never_matches_highlighting = warning
+resharper_place_assignment_expression_into_block_highlighting = none
+resharper_polymorphic_field_like_event_invocation_highlighting = warning
+resharper_positional_property_used_problem_highlighting = warning
+resharper_possible_infinite_inheritance_highlighting = warning
+resharper_possible_intended_rethrow_highlighting = warning
+resharper_possible_interface_member_ambiguity_highlighting = warning
+resharper_possible_invalid_cast_exception_highlighting = warning
+resharper_possible_invalid_cast_exception_in_foreach_loop_highlighting = warning
+resharper_possible_invalid_operation_exception_highlighting = warning
+resharper_possible_loss_of_fraction_highlighting = warning
+resharper_possible_mistaken_argument_highlighting = warning
+resharper_possible_mistaken_call_to_get_type_1_highlighting = warning
+resharper_possible_mistaken_call_to_get_type_2_highlighting = warning
+resharper_possible_multiple_enumeration_highlighting = warning
+resharper_possible_multiple_write_access_in_double_check_locking_highlighting = warning
+resharper_possible_null_reference_exception_highlighting = warning
+resharper_possible_struct_member_modification_of_non_variable_struct_highlighting = warning
+resharper_possible_unintended_linear_search_in_set_highlighting = warning
+resharper_possible_unintended_queryable_as_enumerable_highlighting = suggestion
+resharper_possible_unintended_reference_comparison_highlighting = warning
+resharper_possible_write_to_me_highlighting = warning
+resharper_possibly_impure_method_call_on_readonly_variable_highlighting = warning
+resharper_possibly_missing_indexer_initializer_comma_highlighting = warning
+resharper_possibly_mistaken_use_of_interpolated_string_insert_highlighting = warning
+resharper_private_field_can_be_converted_to_local_variable_highlighting = warning
+resharper_property_can_be_made_init_only_global_highlighting = suggestion
+resharper_property_can_be_made_init_only_local_highlighting = suggestion
+resharper_property_field_keyword_is_never_assigned_highlighting = warning
+resharper_property_field_keyword_is_never_used_highlighting = warning
+resharper_property_not_resolved_highlighting = error
+resharper_public_constructor_in_abstract_class_highlighting = suggestion
+resharper_pure_attribute_on_void_method_highlighting = warning
+resharper_razor_layout_not_resolved_highlighting = error
+resharper_razor_section_not_resolved_highlighting = error
+resharper_read_access_in_double_check_locking_highlighting = warning
+resharper_redundant_abstract_modifier_highlighting = warning
+resharper_redundant_accessor_body_highlighting = suggestion
+resharper_redundant_always_match_subpattern_highlighting = suggestion
+resharper_redundant_anonymous_type_property_name_highlighting = warning
+resharper_redundant_argument_default_value_highlighting = warning
+resharper_redundant_array_creation_expression_highlighting = hint
+resharper_redundant_array_lower_bound_specification_highlighting = warning
+resharper_redundant_assignment_highlighting = warning
+resharper_redundant_attribute_parentheses_highlighting = hint
+resharper_redundant_attribute_suffix_highlighting = warning
+resharper_redundant_attribute_usage_property_highlighting = suggestion
+resharper_redundant_base_constructor_call_highlighting = warning
+resharper_redundant_base_qualifier_highlighting = warning
+resharper_redundant_blank_lines_highlighting = none
+resharper_redundant_bool_compare_highlighting = warning
+resharper_redundant_caller_argument_expression_default_value_highlighting = warning
+resharper_redundant_case_label_highlighting = warning
+resharper_redundant_cast_highlighting = warning
+resharper_redundant_catch_clause_highlighting = warning
+resharper_redundant_check_before_assignment_highlighting = warning
+resharper_redundant_collection_initializer_element_braces_highlighting = hint
+resharper_redundant_configure_await_highlighting = suggestion
+resharper_redundant_declaration_semicolon_highlighting = hint
+resharper_redundant_default_member_initializer_highlighting = warning
+resharper_redundant_delegate_creation_highlighting = warning
+resharper_redundant_dictionary_contains_key_before_adding_highlighting = warning
+resharper_redundant_disable_warning_comment_highlighting = warning
+resharper_redundant_discard_designation_highlighting = suggestion
+resharper_redundant_empty_case_else_highlighting = warning
+resharper_redundant_empty_finally_block_highlighting = warning
+resharper_redundant_empty_object_creation_argument_list_highlighting = hint
+resharper_redundant_empty_object_or_collection_initializer_highlighting = warning
+resharper_redundant_empty_switch_section_highlighting = warning
+resharper_redundant_enumerable_cast_call_highlighting = warning
+resharper_redundant_enum_case_label_for_default_section_highlighting = none
+resharper_redundant_explicit_array_creation_highlighting = warning
+resharper_redundant_explicit_array_size_highlighting = warning
+resharper_redundant_explicit_nullable_creation_highlighting = warning
+resharper_redundant_explicit_params_array_creation_highlighting = suggestion
+resharper_redundant_explicit_positional_property_declaration_highlighting = warning
+resharper_redundant_explicit_tuple_component_name_highlighting = warning
+resharper_redundant_extends_list_entry_highlighting = warning
+resharper_redundant_fixed_pointer_declaration_highlighting = suggestion
+resharper_redundant_if_else_block_highlighting = hint
+resharper_redundant_if_statement_then_keyword_highlighting = none
+resharper_redundant_immediate_delegate_invocation_highlighting = suggestion
+resharper_redundant_include_highlighting = warning
+resharper_redundant_is_before_relational_pattern_highlighting = suggestion
+resharper_redundant_iterator_keyword_highlighting = warning
+resharper_redundant_jump_statement_highlighting = warning
+resharper_redundant_lambda_parameter_type_highlighting = warning
+resharper_redundant_lambda_signature_parentheses_highlighting = hint
+resharper_redundant_linebreak_highlighting = none
+resharper_redundant_logical_conditional_expression_operand_highlighting = warning
+resharper_redundant_me_qualifier_highlighting = warning
+resharper_redundant_my_base_qualifier_highlighting = warning
+resharper_redundant_my_class_qualifier_highlighting = warning
+resharper_redundant_name_qualifier_highlighting = warning
+resharper_redundant_not_null_constraint_highlighting = warning
+resharper_redundant_nullable_annotation_on_reference_type_constraint_highlighting = warning
+resharper_redundant_nullable_annotation_on_type_constraint_has_non_nullable_base_type_highlighting = warning
+resharper_redundant_nullable_annotation_on_type_constraint_has_non_nullable_type_kind_highlighting = warning
+resharper_redundant_nullable_flow_attribute_highlighting = warning
+resharper_redundant_nullable_type_mark_highlighting = warning
+resharper_redundant_nullness_attribute_with_nullable_reference_types_highlighting = warning
+resharper_redundant_overflow_checking_context_highlighting = warning
+resharper_redundant_overload_global_highlighting = suggestion
+resharper_redundant_overload_local_highlighting = suggestion
+resharper_redundant_overridden_member_highlighting = warning
+resharper_redundant_params_highlighting = warning
+resharper_redundant_parentheses_highlighting = none
+resharper_redundant_pattern_parentheses_highlighting = hint
+resharper_redundant_property_parentheses_highlighting = hint
+resharper_redundant_property_pattern_clause_highlighting = suggestion
+resharper_redundant_qualifier_highlighting = warning
+resharper_redundant_query_order_by_ascending_keyword_highlighting = hint
+resharper_redundant_range_bound_highlighting = suggestion
+resharper_redundant_readonly_modifier_highlighting = suggestion
+resharper_redundant_record_body_highlighting = warning
+resharper_redundant_record_class_keyword_highlighting = warning
+resharper_redundant_scoped_parameter_modifier_highlighting = warning
+resharper_redundant_setter_value_parameter_declaration_highlighting = hint
+resharper_redundant_set_contains_before_adding_highlighting = warning
+resharper_redundant_space_highlighting = none
+resharper_redundant_string_format_call_highlighting = warning
+resharper_redundant_string_interpolation_highlighting = suggestion
+resharper_redundant_string_to_char_array_call_highlighting = warning
+resharper_redundant_string_type_highlighting = suggestion
+resharper_redundant_suppress_nullable_warning_expression_highlighting = warning
+resharper_redundant_ternary_expression_highlighting = warning
+resharper_redundant_to_string_call_for_value_type_highlighting = hint
+resharper_redundant_to_string_call_highlighting = warning
+resharper_redundant_type_arguments_of_method_highlighting = warning
+resharper_redundant_type_check_in_pattern_highlighting = warning
+resharper_redundant_unsafe_context_highlighting = warning
+resharper_redundant_using_directive_global_highlighting = warning
+resharper_redundant_using_directive_highlighting = warning
+resharper_redundant_verbatim_prefix_highlighting = suggestion
+resharper_redundant_verbatim_string_prefix_highlighting = suggestion
+resharper_redundant_virtual_modifier_highlighting = warning
+resharper_redundant_with_expression_highlighting = suggestion
+resharper_reference_equals_with_value_type_highlighting = warning
+resharper_reg_exp_inspections_highlighting = warning
+resharper_remove_constructor_invocation_highlighting = none
+resharper_remove_redundant_braces_highlighting = none
+resharper_remove_redundant_or_statement_false_highlighting = suggestion
+resharper_remove_redundant_or_statement_true_highlighting = suggestion
+resharper_remove_to_list_1_highlighting = suggestion
+resharper_remove_to_list_2_highlighting = suggestion
+resharper_replace_auto_property_with_computed_property_highlighting = hint
+resharper_replace_conditional_expression_with_null_coalescing_highlighting = suggestion
+resharper_replace_object_pattern_with_var_pattern_highlighting = suggestion
+resharper_replace_sequence_equal_with_constant_pattern_highlighting = suggestion
+resharper_replace_slice_with_range_indexer_highlighting = hint
+resharper_replace_substring_with_range_indexer_highlighting = hint
+resharper_replace_with_field_keyword_highlighting = suggestion
+resharper_replace_with_first_or_default_1_highlighting = suggestion
+resharper_replace_with_first_or_default_2_highlighting = suggestion
+resharper_replace_with_first_or_default_3_highlighting = suggestion
+resharper_replace_with_first_or_default_4_highlighting = suggestion
+resharper_replace_with_last_or_default_1_highlighting = suggestion
+resharper_replace_with_last_or_default_2_highlighting = suggestion
+resharper_replace_with_last_or_default_3_highlighting = suggestion
+resharper_replace_with_last_or_default_4_highlighting = suggestion
+resharper_replace_with_of_type_1_highlighting = suggestion
+resharper_replace_with_of_type_2_highlighting = suggestion
+resharper_replace_with_of_type_3_highlighting = suggestion
+resharper_replace_with_of_type_any_1_highlighting = suggestion
+resharper_replace_with_of_type_any_2_highlighting = suggestion
+resharper_replace_with_of_type_count_1_highlighting = suggestion
+resharper_replace_with_of_type_count_2_highlighting = suggestion
+resharper_replace_with_of_type_first_1_highlighting = suggestion
+resharper_replace_with_of_type_first_2_highlighting = suggestion
+resharper_replace_with_of_type_first_or_default_1_highlighting = suggestion
+resharper_replace_with_of_type_first_or_default_2_highlighting = suggestion
+resharper_replace_with_of_type_last_1_highlighting = suggestion
+resharper_replace_with_of_type_last_2_highlighting = suggestion
+resharper_replace_with_of_type_last_or_default_1_highlighting = suggestion
+resharper_replace_with_of_type_last_or_default_2_highlighting = suggestion
+resharper_replace_with_of_type_long_count_highlighting = suggestion
+resharper_replace_with_of_type_single_1_highlighting = suggestion
+resharper_replace_with_of_type_single_2_highlighting = suggestion
+resharper_replace_with_of_type_single_or_default_1_highlighting = suggestion
+resharper_replace_with_of_type_single_or_default_2_highlighting = suggestion
+resharper_replace_with_of_type_where_highlighting = suggestion
+resharper_replace_with_simple_assignment_false_highlighting = suggestion
+resharper_replace_with_simple_assignment_true_highlighting = suggestion
+resharper_replace_with_single_assignment_false_highlighting = suggestion
+resharper_replace_with_single_assignment_true_highlighting = suggestion
+resharper_replace_with_single_call_to_any_highlighting = suggestion
+resharper_replace_with_single_call_to_count_highlighting = suggestion
+resharper_replace_with_single_call_to_first_highlighting = suggestion
+resharper_replace_with_single_call_to_first_or_default_highlighting = suggestion
+resharper_replace_with_single_call_to_last_highlighting = suggestion
+resharper_replace_with_single_call_to_last_or_default_highlighting = suggestion
+resharper_replace_with_single_call_to_single_highlighting = suggestion
+resharper_replace_with_single_call_to_single_or_default_highlighting = suggestion
+resharper_replace_with_single_or_default_1_highlighting = suggestion
+resharper_replace_with_single_or_default_2_highlighting = suggestion
+resharper_replace_with_single_or_default_3_highlighting = suggestion
+resharper_replace_with_single_or_default_4_highlighting = suggestion
+resharper_replace_with_string_is_null_or_empty_highlighting = suggestion
+resharper_required_base_types_conflict_highlighting = warning
+resharper_required_base_types_direct_conflict_highlighting = warning
+resharper_required_base_types_is_not_inherited_highlighting = warning
+resharper_resource_item_not_resolved_highlighting = error
+resharper_resource_not_resolved_highlighting = error
+resharper_resx_not_resolved_highlighting = warning
+resharper_return_type_can_be_enumerable_global_highlighting = hint
+resharper_return_type_can_be_enumerable_local_highlighting = hint
+resharper_return_type_can_be_not_nullable_highlighting = warning
+resharper_return_value_of_pure_method_is_not_used_highlighting = warning
+resharper_route_templates_action_route_prefix_can_be_extracted_to_controller_route_highlighting = hint
+resharper_route_templates_ambiguous_matching_constraint_constructor_highlighting = warning
+resharper_route_templates_constraint_argument_cannot_be_converted_highlighting = warning
+resharper_route_templates_controller_route_parameter_is_not_passed_to_methods_highlighting = hint
+resharper_route_templates_duplicated_parameter_highlighting = warning
+resharper_route_templates_matching_constraint_constructor_not_resolved_highlighting = warning
+resharper_route_templates_method_missing_route_parameters_highlighting = hint
+resharper_route_templates_optional_parameter_can_be_preceded_only_by_single_period_highlighting = warning
+resharper_route_templates_optional_parameter_must_be_at_the_end_of_segment_highlighting = warning
+resharper_route_templates_parameter_constraint_can_be_specified_highlighting = hint
+resharper_route_templates_parameter_type_and_constraints_mismatch_highlighting = warning
+resharper_route_templates_parameter_type_can_be_made_stricter_highlighting = suggestion
+resharper_route_templates_route_parameter_constraint_not_resolved_highlighting = warning
+resharper_route_templates_route_parameter_is_not_passed_to_method_highlighting = hint
+resharper_route_templates_route_token_not_resolved_highlighting = warning
+resharper_route_templates_symbol_not_resolved_highlighting = warning
+resharper_route_templates_syntax_error_highlighting = warning
+resharper_safe_cast_is_used_as_type_check_highlighting = suggestion
+resharper_script_tag_has_both_src_and_content_attributes_highlighting = error
+resharper_sealed_member_in_sealed_class_highlighting = warning
+resharper_separate_control_transfer_statement_highlighting = none
+resharper_service_contract_without_operations_highlighting = warning
+resharper_shift_expression_real_shift_count_is_zero_highlighting = warning
+resharper_shift_expression_result_equals_zero_highlighting = warning
+resharper_shift_expression_right_operand_not_equal_real_count_highlighting = warning
+resharper_shift_expression_zero_left_operand_highlighting = warning
+resharper_similar_anonymous_type_nearby_highlighting = hint
+resharper_simplify_conditional_operator_highlighting = suggestion
+resharper_simplify_conditional_ternary_expression_highlighting = suggestion
+resharper_simplify_i_if_highlighting = suggestion
+resharper_simplify_linq_expression_use_all_highlighting = none
+resharper_simplify_linq_expression_use_any_highlighting = suggestion
+resharper_simplify_linq_expression_use_min_by_and_max_by_highlighting = suggestion
+resharper_simplify_string_interpolation_highlighting = suggestion
+resharper_specify_a_culture_in_string_conversion_explicitly_highlighting = warning
+resharper_specify_string_comparison_highlighting = hint
+resharper_spin_lock_in_readonly_field_highlighting = warning
+resharper_stack_alloc_inside_loop_highlighting = warning
+resharper_static_member_initializer_referes_to_member_below_highlighting = warning
+resharper_static_member_in_generic_type_highlighting = warning
+resharper_static_problem_in_text_highlighting = warning
+resharper_string_compare_is_culture_specific_1_highlighting = warning
+resharper_string_compare_is_culture_specific_2_highlighting = warning
+resharper_string_compare_is_culture_specific_3_highlighting = warning
+resharper_string_compare_is_culture_specific_4_highlighting = warning
+resharper_string_compare_is_culture_specific_5_highlighting = warning
+resharper_string_compare_is_culture_specific_6_highlighting = warning
+resharper_string_compare_to_is_culture_specific_highlighting = warning
+resharper_string_ends_with_is_culture_specific_highlighting = none
+resharper_string_index_of_is_culture_specific_1_highlighting = warning
+resharper_string_index_of_is_culture_specific_2_highlighting = warning
+resharper_string_index_of_is_culture_specific_3_highlighting = warning
+resharper_string_last_index_of_is_culture_specific_1_highlighting = warning
+resharper_string_last_index_of_is_culture_specific_2_highlighting = warning
+resharper_string_last_index_of_is_culture_specific_3_highlighting = warning
+resharper_string_literal_as_interpolation_argument_highlighting = suggestion
+resharper_string_literal_typo_highlighting = suggestion
+resharper_string_starts_with_is_culture_specific_highlighting = none
+resharper_structured_message_template_problem_highlighting = warning
+resharper_struct_can_be_made_read_only_highlighting = suggestion
+resharper_struct_member_can_be_made_read_only_highlighting = none
+resharper_suggest_base_type_for_parameter_highlighting = hint
+resharper_suggest_base_type_for_parameter_in_constructor_highlighting = hint
+resharper_suggest_discard_declaration_var_style_highlighting = hint
+resharper_suggest_var_or_type_built_in_types_highlighting = hint
+resharper_suggest_var_or_type_deconstruction_declarations_highlighting = hint
+resharper_suggest_var_or_type_elsewhere_highlighting = hint
+resharper_suggest_var_or_type_simple_types_highlighting = hint
+resharper_suppress_nullable_warning_expression_as_inverted_is_expression_highlighting = warning
+resharper_suspicious_lock_over_synchronization_primitive_highlighting = warning
+resharper_suspicious_math_sign_method_highlighting = warning
+resharper_suspicious_parameter_name_in_argument_null_exception_highlighting = warning
+resharper_suspicious_type_conversion_global_highlighting = warning
+resharper_swap_via_deconstruction_highlighting = suggestion
+resharper_switch_expression_handles_some_known_enum_values_with_exception_in_default_highlighting = hint
+resharper_switch_statement_for_enum_misses_default_section_highlighting = hint
+resharper_switch_statement_handles_some_known_enum_values_with_default_highlighting = hint
+resharper_switch_statement_missing_some_enum_cases_no_default_highlighting = hint
+resharper_symbol_from_not_copied_locally_reference_used_warning_highlighting = warning
+resharper_tabs_and_spaces_mismatch_highlighting = none
+resharper_tabs_are_disallowed_highlighting = none
+resharper_tabs_outside_indent_highlighting = none
+resharper_tail_recursive_call_highlighting = hint
+resharper_template_duplicate_property_problem_highlighting = warning
+resharper_template_format_string_problem_highlighting = warning
+resharper_template_is_not_compile_time_constant_problem_highlighting = warning
+resharper_thread_static_at_instance_field_highlighting = warning
+resharper_thread_static_field_has_initializer_highlighting = warning
+resharper_too_wide_local_variable_scope_highlighting = suggestion
+resharper_try_cast_always_succeeds_highlighting = suggestion
+resharper_try_statements_can_be_merged_highlighting = hint
+resharper_type_parameter_can_be_variant_highlighting = suggestion
+resharper_unassigned_field_global_highlighting = suggestion
+resharper_unassigned_field_local_highlighting = warning
+resharper_unassigned_get_only_auto_property_highlighting = warning
+resharper_unassigned_readonly_field_highlighting = warning
+resharper_unclosed_script_highlighting = error
+resharper_unexpected_attribute_highlighting = warning
+resharper_unexpected_directive_highlighting = warning
+resharper_unnecessary_whitespace_highlighting = none
+resharper_unreachable_switch_arm_due_to_integer_analysis_highlighting = warning
+resharper_unreachable_switch_case_due_to_integer_analysis_highlighting = warning
+resharper_unreal_header_tool_error_highlighting = error
+resharper_unreal_header_tool_warning_highlighting = warning
+resharper_unsupported_required_base_type_highlighting = warning
+resharper_unused_anonymous_method_signature_highlighting = warning
+resharper_unused_auto_property_accessor_global_highlighting = warning
+resharper_unused_auto_property_accessor_local_highlighting = warning
+resharper_unused_import_clause_highlighting = warning
+resharper_unused_local_function_highlighting = warning
+resharper_unused_local_function_parameter_highlighting = warning
+resharper_unused_local_function_return_value_highlighting = warning
+resharper_unused_member_global_highlighting = suggestion
+resharper_unused_member_hierarchy_global_highlighting = suggestion
+resharper_unused_member_hierarchy_local_highlighting = warning
+resharper_unused_member_in_super_global_highlighting = suggestion
+resharper_unused_member_in_super_local_highlighting = warning
+resharper_unused_member_local_highlighting = warning
+resharper_unused_method_return_value_global_highlighting = suggestion
+resharper_unused_method_return_value_local_highlighting = warning
+resharper_unused_parameter_global_highlighting = suggestion
+resharper_unused_parameter_in_partial_method_highlighting = warning
+resharper_unused_parameter_local_highlighting = warning
+resharper_unused_tuple_component_in_return_value_highlighting = warning
+resharper_unused_type_global_highlighting = suggestion
+resharper_unused_type_local_highlighting = warning
+resharper_unused_type_parameter_highlighting = warning
+resharper_unused_variable_highlighting = warning
+resharper_useless_binary_operation_highlighting = warning
+resharper_useless_comparison_to_integral_constant_highlighting = warning
+resharper_use_array_creation_expression_1_highlighting = suggestion
+resharper_use_array_creation_expression_2_highlighting = suggestion
+resharper_use_array_empty_method_highlighting = suggestion
+resharper_use_await_using_highlighting = suggestion
+resharper_use_cancellation_token_for_i_async_enumerable_highlighting = suggestion
+resharper_use_collection_count_property_highlighting = suggestion
+resharper_use_configure_await_false_for_async_disposable_highlighting = none
+resharper_use_configure_await_false_highlighting = suggestion
+resharper_use_deconstruction_highlighting = hint
+resharper_use_empty_types_field_highlighting = suggestion
+resharper_use_event_args_empty_field_highlighting = suggestion
+resharper_use_format_specifier_in_format_string_highlighting = suggestion
+resharper_use_implicitly_typed_variable_evident_highlighting = hint
+resharper_use_implicitly_typed_variable_highlighting = none
+resharper_use_implicit_by_val_modifier_highlighting = hint
+resharper_use_indexed_property_highlighting = suggestion
+resharper_use_index_from_end_expression_highlighting = suggestion
+resharper_use_is_operator_1_highlighting = suggestion
+resharper_use_is_operator_2_highlighting = suggestion
+resharper_use_method_any_0_highlighting = suggestion
+resharper_use_method_any_1_highlighting = suggestion
+resharper_use_method_any_2_highlighting = suggestion
+resharper_use_method_any_3_highlighting = suggestion
+resharper_use_method_any_4_highlighting = suggestion
+resharper_use_method_is_instance_of_type_highlighting = suggestion
+resharper_use_nameof_expression_for_part_of_the_string_highlighting = none
+resharper_use_nameof_expression_highlighting = suggestion
+resharper_use_nameof_for_dependency_property_highlighting = suggestion
+resharper_use_name_of_instead_of_type_of_highlighting = suggestion
+resharper_use_negated_pattern_in_is_expression_highlighting = hint
+resharper_use_negated_pattern_matching_highlighting = hint
+resharper_use_nullable_annotation_instead_of_attribute_highlighting = suggestion
+resharper_use_nullable_attributes_supported_by_compiler_highlighting = suggestion
+resharper_use_nullable_reference_types_annotation_syntax_highlighting = warning
+resharper_use_null_propagation_highlighting = hint
+resharper_use_object_or_collection_initializer_highlighting = suggestion
+resharper_use_pattern_matching_highlighting = suggestion
+resharper_use_positional_deconstruction_pattern_highlighting = none
+resharper_use_string_interpolation_highlighting = suggestion
+resharper_use_string_interpolation_when_possible_highlighting = hint
+resharper_use_switch_case_pattern_variable_highlighting = suggestion
+resharper_use_throw_if_null_method_highlighting = none
+resharper_use_unsigned_right_shift_operator_highlighting = suggestion
+resharper_use_verbatim_string_highlighting = hint
+resharper_use_with_expression_to_copy_anonymous_object_highlighting = suggestion
+resharper_use_with_expression_to_copy_record_highlighting = suggestion
+resharper_use_with_expression_to_copy_struct_highlighting = suggestion
+resharper_use_with_expression_to_copy_tuple_highlighting = suggestion
+resharper_value_parameter_not_used_highlighting = warning
+resharper_value_range_attribute_violation_highlighting = warning
+resharper_variable_can_be_not_nullable_highlighting = warning
+resharper_variable_hides_outer_variable_highlighting = warning
+public virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualpublic virtualresharper_virtual_member_call_in_constructor_highlighting = warning
+resharper_virtual_member_never_overridden_global_highlighting = suggestion
+resharper_virtual_member_never_overridden_local_highlighting = suggestion
+resharper_void_method_with_must_use_return_value_attribute_highlighting = warning
+resharper_web_config_module_not_resolved_highlighting = warning
+resharper_web_config_module_qualification_resolve_highlighting = warning
+resharper_web_config_redundant_add_namespace_tag_highlighting = warning
+resharper_web_config_redundant_location_tag_highlighting = warning
+resharper_web_config_tag_prefix_redundand_highlighting = warning
+resharper_web_config_type_not_resolved_highlighting = warning
+resharper_web_config_unused_add_tag_highlighting = warning
+resharper_web_config_unused_element_due_to_config_source_attribute_highlighting = warning
+resharper_web_config_unused_remove_or_clear_tag_highlighting = warning
+resharper_web_config_web_config_path_warning_highlighting = warning
+resharper_web_config_wrong_module_highlighting = warning
+resharper_web_ignored_path_highlighting = none
+resharper_web_mapped_path_highlighting = hint
+resharper_with_expression_instead_of_initializer_highlighting = suggestion
+resharper_with_expression_modifies_all_members_highlighting = warning
+resharper_wrong_indent_size_highlighting = none
+resharper_xaml_assign_null_to_not_null_attribute_highlighting = warning
+resharper_xaml_avalonia_wrong_binding_mode_for_stream_binding_operator_highlighting = warning
+resharper_xaml_binding_without_context_not_resolved_highlighting = hint
+resharper_xaml_binding_with_context_not_resolved_highlighting = warning
+resharper_xaml_compiled_binding_missing_data_type_error_highlighting_highlighting = error
+resharper_xaml_constructor_warning_highlighting = warning
+resharper_xaml_decimal_parsing_is_culture_dependent_highlighting = warning
+resharper_xaml_dependency_property_resolve_error_highlighting = warning
+resharper_xaml_duplicate_style_setter_highlighting = warning
+resharper_xaml_dynamic_resource_error_highlighting = error
+resharper_xaml_element_name_reference_not_resolved_highlighting = error
+resharper_xaml_empty_grid_length_definition_highlighting = error
+resharper_xaml_field_modifier_requires_name_attribute_highlighting = warning
+resharper_xaml_grid_definitions_can_be_converted_to_attribute_highlighting = hint
+resharper_xaml_ignored_path_highlighting_highlighting = none
+resharper_xaml_index_out_of_grid_definition_highlighting = warning
+resharper_xaml_invalid_member_type_highlighting = error
+resharper_xaml_invalid_resource_target_type_highlighting = error
+resharper_xaml_invalid_resource_type_highlighting = error
+resharper_xaml_invalid_type_highlighting = error
+resharper_xaml_language_level_highlighting = error
+resharper_xaml_mapped_path_highlighting_highlighting = hint
+resharper_xaml_method_arguments_will_be_ignored_highlighting = warning
+resharper_xaml_missing_grid_index_highlighting = warning
+resharper_xaml_overloads_collision_highlighting = warning
+resharper_xaml_parent_is_out_of_current_component_tree_highlighting = warning
+resharper_xaml_path_error_highlighting = warning
+resharper_xaml_possible_null_reference_exception_highlighting = suggestion
+resharper_xaml_redundant_attached_property_highlighting = warning
+resharper_xaml_redundant_binding_mode_attribute_highlighting = warning
+resharper_xaml_redundant_collection_property_highlighting = warning
+resharper_xaml_redundant_freeze_attribute_highlighting = warning
+resharper_xaml_redundant_grid_definitions_highlighting = warning
+resharper_xaml_redundant_grid_span_highlighting = warning
+resharper_xaml_redundant_modifiers_attribute_highlighting = warning
+resharper_xaml_redundant_namespace_alias_highlighting = warning
+resharper_xaml_redundant_name_attribute_highlighting = warning
+resharper_xaml_redundant_property_type_qualifier_highlighting = warning
+resharper_xaml_redundant_resource_highlighting = warning
+resharper_xaml_redundant_styled_value_highlighting = warning
+resharper_xaml_redundant_update_source_trigger_attribute_highlighting = warning
+resharper_xaml_redundant_xamarin_forms_class_declaration_highlighting = warning
+resharper_xaml_resource_file_path_case_mismatch_highlighting = warning
+resharper_xaml_routed_event_resolve_error_highlighting = warning
+resharper_xaml_static_resource_not_resolved_highlighting = warning
+resharper_xaml_style_class_not_found_highlighting = warning
+resharper_xaml_style_invalid_target_type_highlighting = error
+resharper_xaml_unexpected_element_highlighting = error
+resharper_xaml_unexpected_text_token_highlighting = error
+resharper_xaml_xaml_duplicate_device_family_type_view_highlighting_highlighting = error
+resharper_xaml_xaml_mismatched_device_family_view_clr_name_highlighting_highlighting = warning
+resharper_xaml_xaml_relative_source_default_mode_warning_highlighting_highlighting = warning
+resharper_xaml_xaml_unknown_device_family_type_highlighting_highlighting = warning
+resharper_xaml_xaml_xamarin_forms_data_type_and_binding_context_type_mismatched_highlighting_highlighting = warning
+resharper_xaml_x_key_attribute_disallowed_highlighting = error
+resharper_xunit_xunit_test_with_console_output_highlighting = warning
+resharper_zero_index_from_end_highlighting = warning
+
+# ReSharper properties
+resharper_csharp_int_align_comments = true
+
+[*.html]
+indent_size = 4
+tab_width = 4
+indent_style = space
+ij_html_do_not_indent_children_of_tags =
\ No newline at end of file
diff --git a/extra/admin-api/.gitignore b/extra/admin-api/.gitignore
new file mode 100644
index 00000000..5a9afc4c
--- /dev/null
+++ b/extra/admin-api/.gitignore
@@ -0,0 +1,9 @@
+**/bin/
+**/obj/
+/patches/
+appsettings.Local*.json
+*.DotSettings.user
+/*.patch
+
+Spacebar.Db/**/*.orig
+Spacebar.Db/**/*.rej
\ No newline at end of file
diff --git a/extra/admin-api/.idea/.idea.SpacebarAdminAPI/.idea/.gitignore b/extra/admin-api/.idea/.idea.SpacebarAdminAPI/.idea/.gitignore
new file mode 100644
index 00000000..81d04d5b
--- /dev/null
+++ b/extra/admin-api/.idea/.idea.SpacebarAdminAPI/.idea/.gitignore
@@ -0,0 +1,13 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Rider ignored files
+/projectSettingsUpdater.xml
+/modules.xml
+/contentModel.xml
+/.idea.SpacebarAdminAPI.iml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/extra/admin-api/.idea/.idea.SpacebarAdminAPI/.idea/.name b/extra/admin-api/.idea/.idea.SpacebarAdminAPI/.idea/.name
new file mode 100644
index 00000000..7587ad4d
--- /dev/null
+++ b/extra/admin-api/.idea/.idea.SpacebarAdminAPI/.idea/.name
@@ -0,0 +1 @@
+SpacebarAdminAPI
\ No newline at end of file
diff --git a/extra/admin-api/.idea/.idea.SpacebarAdminAPI/.idea/encodings.xml b/extra/admin-api/.idea/.idea.SpacebarAdminAPI/.idea/encodings.xml
new file mode 100644
index 00000000..df87cf95
--- /dev/null
+++ b/extra/admin-api/.idea/.idea.SpacebarAdminAPI/.idea/encodings.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/extra/admin-api/.idea/.idea.SpacebarAdminAPI/.idea/indexLayout.xml b/extra/admin-api/.idea/.idea.SpacebarAdminAPI/.idea/indexLayout.xml
new file mode 100644
index 00000000..7b08163c
--- /dev/null
+++ b/extra/admin-api/.idea/.idea.SpacebarAdminAPI/.idea/indexLayout.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/extra/admin-api/.idea/.idea.SpacebarAdminAPI/.idea/vcs.xml b/extra/admin-api/.idea/.idea.SpacebarAdminAPI/.idea/vcs.xml
new file mode 100644
index 00000000..b2bdec2d
--- /dev/null
+++ b/extra/admin-api/.idea/.idea.SpacebarAdminAPI/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/extra/admin-api/Spacebar.AdminAPI/Controllers/UserController.cs b/extra/admin-api/Spacebar.AdminAPI/Controllers/UserController.cs
new file mode 100644
index 00000000..dbe497df
--- /dev/null
+++ b/extra/admin-api/Spacebar.AdminAPI/Controllers/UserController.cs
@@ -0,0 +1,17 @@
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.EntityFrameworkCore;
+using Spacebar.Db.Contexts;
+using Spacebar.Db.Models;
+
+namespace Spacebar.AdminAPI.Controllers;
+
+[ApiController]
+[Route("/users")]
+public class UserController(ILogger logger, SpacebarDbContext db) : ControllerBase {
+ private readonly ILogger _logger = logger;
+
+ [HttpGet(Name = "/")]
+ public IAsyncEnumerable Get() {
+ return db.Users.AsAsyncEnumerable();
+ }
+}
\ No newline at end of file
diff --git a/extra/admin-api/Spacebar.AdminAPI/Extensions/DbExtensions.cs b/extra/admin-api/Spacebar.AdminAPI/Extensions/DbExtensions.cs
new file mode 100644
index 00000000..c97a1575
--- /dev/null
+++ b/extra/admin-api/Spacebar.AdminAPI/Extensions/DbExtensions.cs
@@ -0,0 +1,8 @@
+using Microsoft.EntityFrameworkCore;
+using Spacebar.Db.Models;
+
+namespace Spacebar.AdminAPI.Extensions;
+
+public static class DbExtensions {
+ public static string? GetString(this DbSet config, string key) => config.Find(key)?.Value;
+}
\ No newline at end of file
diff --git a/extra/admin-api/Spacebar.AdminAPI/Middleware/AuthenticationMiddleware.cs b/extra/admin-api/Spacebar.AdminAPI/Middleware/AuthenticationMiddleware.cs
new file mode 100644
index 00000000..400928e5
--- /dev/null
+++ b/extra/admin-api/Spacebar.AdminAPI/Middleware/AuthenticationMiddleware.cs
@@ -0,0 +1,53 @@
+using System.Buffers.Text;
+using System.IdentityModel.Tokens.Jwt;
+using System.Security.Cryptography;
+using System.Text;
+using ArcaneLibs.Extensions;
+using Microsoft.EntityFrameworkCore.Internal;
+using Microsoft.IdentityModel.Tokens;
+using Spacebar.AdminAPI.Extensions;
+using Spacebar.Db.Contexts;
+
+namespace Spacebar.AdminAPI.Middleware;
+
+public class AuthenticationMiddleware(RequestDelegate next) {
+ public async Task Invoke(HttpContext context) {
+ if(Environment.GetEnvironmentVariable("SB_ADMIN_API_DISABLE_AUTH") == "true") {
+ await next(context);
+ return;
+ }
+
+ if (!context.Request.Headers.ContainsKey("Authorization")) {
+ context.Response.StatusCode = 401;
+ await context.Response.WriteAsync("Authorization header is missing");
+ return;
+ }
+
+ var token = context.Request.Headers["Authorization"].ToString().Split(' ').Last();
+
+ var handler = new JwtSecurityTokenHandler();
+ var secretFile = File.ReadAllText("../../../jwt.key.pub");
+ var key = ECDsa.Create(ECCurve.NamedCurves.nistP256);
+ key.ImportFromPem(secretFile);
+
+ var res = await handler.ValidateTokenAsync(token, new TokenValidationParameters {
+ IssuerSigningKey = new ECDsaSecurityKey(key),
+ ValidAlgorithms = new[] { "ES512" },
+ LogValidationExceptions = true,
+ // These are required to be false for the token to be valid as they aren't provided by the token
+ ValidateIssuer = false,
+ ValidateLifetime = false,
+ ValidateAudience = false,
+ });
+
+ if (!res.IsValid) {
+ context.Response.StatusCode = 401;
+ await context.Response.WriteAsync("Invalid token");
+ return;
+ }
+
+ Console.WriteLine(res.ClaimsIdentity.Claims.Select(x => $"{x.Type} : {x.Value}").ToJson());
+
+ await next(context);
+ }
+}
\ No newline at end of file
diff --git a/extra/admin-api/Spacebar.AdminAPI/Program.cs b/extra/admin-api/Spacebar.AdminAPI/Program.cs
new file mode 100644
index 00000000..8e40e3c5
--- /dev/null
+++ b/extra/admin-api/Spacebar.AdminAPI/Program.cs
@@ -0,0 +1,58 @@
+using System.Text.Json.Serialization;
+using Microsoft.AspNetCore.Http.Timeouts;
+using Microsoft.EntityFrameworkCore;
+using Spacebar.AdminAPI.Middleware;
+using Spacebar.Db.Contexts;
+
+var builder = WebApplication.CreateBuilder(args);
+
+// Add services to the container.
+
+builder.Services.AddControllers(options => {
+ options.MaxValidationDepth = null;
+ options.MaxIAsyncEnumerableBufferLimit = 100;
+}).AddJsonOptions(options => {
+ options.JsonSerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull;
+ options.JsonSerializerOptions.WriteIndented = true;
+});
+
+// Learn more about configuring OpenAPI at https://aka.ms/aspnet/openapi
+builder.Services.AddOpenApi();
+builder.Services.AddDbContextPool(options => {
+ options
+ .UseNpgsql(builder.Configuration.GetConnectionString("Spacebar"))
+ .EnableDetailedErrors();
+});
+
+builder.Services.AddRequestTimeouts(x => {
+ x.DefaultPolicy = new RequestTimeoutPolicy {
+ Timeout = TimeSpan.FromMinutes(10),
+ WriteTimeoutResponse = async context => {
+ context.Response.StatusCode = 504;
+ context.Response.ContentType = "application/json";
+ await context.Response.StartAsync();
+ await context.Response.WriteAsJsonAsync(new { error = "Unknown error" });
+ await context.Response.CompleteAsync();
+ }
+ };
+});
+builder.Services.AddCors(options => {
+ options.AddPolicy(
+ "Open",
+ policy => policy.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod());
+});
+
+var app = builder.Build();
+app.UseCors("Open");
+
+// Configure the HTTP request pipeline.
+if (app.Environment.IsDevelopment()) {
+ app.MapOpenApi();
+}
+
+app.UseMiddleware();
+app.UseAuthorization();
+
+app.MapControllers();
+
+app.Run();
\ No newline at end of file
diff --git a/extra/admin-api/Spacebar.AdminAPI/Properties/launchSettings.json b/extra/admin-api/Spacebar.AdminAPI/Properties/launchSettings.json
new file mode 100644
index 00000000..d362517c
--- /dev/null
+++ b/extra/admin-api/Spacebar.AdminAPI/Properties/launchSettings.json
@@ -0,0 +1,23 @@
+{
+ "$schema": "https://json.schemastore.org/launchsettings.json",
+ "profiles": {
+ "Development": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": false,
+ "applicationUrl": "http://localhost:5112",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ },
+ "Local": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": false,
+ "applicationUrl": "http://localhost:5112",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Local"
+ }
+ }
+ }
+}
diff --git a/extra/admin-api/Spacebar.AdminAPI/Spacebar.AdminAPI.csproj b/extra/admin-api/Spacebar.AdminAPI/Spacebar.AdminAPI.csproj
new file mode 100644
index 00000000..8d14d79e
--- /dev/null
+++ b/extra/admin-api/Spacebar.AdminAPI/Spacebar.AdminAPI.csproj
@@ -0,0 +1,20 @@
+
+
+
+ net9.0
+ enable
+ enable
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/extra/admin-api/Spacebar.AdminAPI/Spacebar.AdminAPI.http b/extra/admin-api/Spacebar.AdminAPI/Spacebar.AdminAPI.http
new file mode 100644
index 00000000..707c9676
--- /dev/null
+++ b/extra/admin-api/Spacebar.AdminAPI/Spacebar.AdminAPI.http
@@ -0,0 +1,6 @@
+@Spacebar.AdminAPI_HostAddress = http://localhost:5112
+
+GET {{Spacebar.AdminAPI_HostAddress}}/weatherforecast/
+Accept: application/json
+
+###
diff --git a/extra/admin-api/Spacebar.AdminAPI/appsettings.Development.json b/extra/admin-api/Spacebar.AdminAPI/appsettings.Development.json
new file mode 100644
index 00000000..5a367f27
--- /dev/null
+++ b/extra/admin-api/Spacebar.AdminAPI/appsettings.Development.json
@@ -0,0 +1,11 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning"
+ }
+ },
+ "ConnectionStrings": {
+ "Spacebar": "Host=127.0.0.1; Username=postgres; Database=spacebar"
+ }
+}
diff --git a/extra/admin-api/Spacebar.AdminAPI/appsettings.json b/extra/admin-api/Spacebar.AdminAPI/appsettings.json
new file mode 100644
index 00000000..10f68b8c
--- /dev/null
+++ b/extra/admin-api/Spacebar.AdminAPI/appsettings.json
@@ -0,0 +1,9 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning"
+ }
+ },
+ "AllowedHosts": "*"
+}
diff --git a/extra/admin-api/Spacebar.Db/Contexts/SpacebarDbContext.cs b/extra/admin-api/Spacebar.Db/Contexts/SpacebarDbContext.cs
new file mode 100644
index 00000000..7564ffe1
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Contexts/SpacebarDbContext.cs
@@ -0,0 +1,617 @@
+using System;
+using System.Collections.Generic;
+using Microsoft.EntityFrameworkCore;
+using Spacebar.Db.Models;
+
+namespace Spacebar.Db.Contexts;
+
+public partial class SpacebarDbContext : DbContext
+{
+ public SpacebarDbContext(DbContextOptions options)
+ : base(options)
+ {
+ }
+
+ public virtual DbSet Applications { get; set; }
+
+ public virtual DbSet Attachments { get; set; }
+
+ public virtual DbSet AuditLogs { get; set; }
+
+ public virtual DbSet BackupCodes { get; set; }
+
+ public virtual DbSet Badges { get; set; }
+
+ public virtual DbSet Bans { get; set; }
+
+ public virtual DbSet Categories { get; set; }
+
+ public virtual DbSet Channels { get; set; }
+
+ public virtual DbSet ClientReleases { get; set; }
+
+ public virtual DbSet Configs { get; set; }
+
+ public virtual DbSet ConnectedAccounts { get; set; }
+
+ public virtual DbSet ConnectionConfigs { get; set; }
+
+ public virtual DbSet EmbedCaches { get; set; }
+
+ public virtual DbSet Emojis { get; set; }
+
+ public virtual DbSet Guilds { get; set; }
+
+ public virtual DbSet Invites { get; set; }
+
+ public virtual DbSet Members { get; set; }
+
+ public virtual DbSet Messages { get; set; }
+
+ public virtual DbSet Migrations { get; set; }
+
+ public virtual DbSet Notes { get; set; }
+
+ public virtual DbSet RateLimits { get; set; }
+
+ public virtual DbSet ReadStates { get; set; }
+
+ public virtual DbSet Recipients { get; set; }
+
+ public virtual DbSet Relationships { get; set; }
+
+ public virtual DbSet Roles { get; set; }
+
+ public virtual DbSet SecurityKeys { get; set; }
+
+ public virtual DbSet SecuritySettings { get; set; }
+
+ public virtual DbSet Sessions { get; set; }
+
+ public virtual DbSet Stickers { get; set; }
+
+ public virtual DbSet StickerPacks { get; set; }
+
+ public virtual DbSet Teams { get; set; }
+
+ public virtual DbSet TeamMembers { get; set; }
+
+ public virtual DbSet Templates { get; set; }
+
+ public virtual DbSet Users { get; set; }
+
+ public virtual DbSet UserSettings { get; set; }
+
+ public virtual DbSet ValidRegistrationTokens { get; set; }
+
+ public virtual DbSet VoiceStates { get; set; }
+
+ public virtual DbSet Webhooks { get; set; }
+
+ protected override void OnModelCreating(ModelBuilder modelBuilder)
+ {
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_938c0a27255637bde919591888f");
+
+ entity.HasOne(d => d.BotUser).WithOne(p => p.ApplicationBotUser)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_2ce5a55796fe4c2f77ece57a647");
+
+ entity.HasOne(d => d.Guild).WithMany(p => p.Applications).HasConstraintName("FK_e5bf78cdbbe9ba91062d74c5aba");
+
+ entity.HasOne(d => d.Owner).WithMany(p => p.ApplicationOwners)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_e57508958bf92b9d9d25231b5e8");
+
+ entity.HasOne(d => d.Team).WithMany(p => p.Applications)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_a36ed02953077f408d0f3ebc424");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_5e1f050bcff31e3084a1d662412");
+
+ entity.HasOne(d => d.Message).WithMany(p => p.Attachments)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_623e10eec51ada466c5038979e3");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_1bb179d048bbc581caa3b013439");
+
+ entity.HasOne(d => d.Target).WithMany(p => p.AuditLogTargets).HasConstraintName("FK_3cd01cd3ae7aab010310d96ac8e");
+
+ entity.HasOne(d => d.User).WithMany(p => p.AuditLogUsers).HasConstraintName("FK_bd2726fd31b35443f2245b93ba0");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_34ab957382dbc57e8fb53f1638f");
+
+ entity.HasOne(d => d.User).WithMany(p => p.BackupCodes)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_70066ea80d2f4b871beda32633b");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_8a651318b8de577e8e217676466");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_a4d6f261bffa4615c62d756566a");
+
+ entity.HasOne(d => d.Executor).WithMany(p => p.BanExecutors).HasConstraintName("FK_07ad88c86d1f290d46748410d58");
+
+ entity.HasOne(d => d.Guild).WithMany(p => p.Bans)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_9d3ab7dd180ebdd245cdb66ecad");
+
+ entity.HasOne(d => d.User).WithMany(p => p.BanUsers)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_5999e8e449f80a236ff72023559");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_24dbc6126a28ff948da33e97d3b");
+
+ entity.Property(e => e.Id).ValueGeneratedNever();
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_bc603823f3f741359c2339389f9");
+
+ entity.HasOne(d => d.Guild).WithMany(p => p.Channels)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_c253dafe5f3a03ec00cd8fb4581");
+
+ entity.HasOne(d => d.Owner).WithMany(p => p.Channels).HasConstraintName("FK_3873ed438575cce703ecff4fc7b");
+
+ entity.HasOne(d => d.Parent).WithMany(p => p.InverseParent).HasConstraintName("FK_3274522d14af40540b1a883fc80");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_4c4ea258342d2d6ba1be0a71a43");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Key).HasName("PK_26489c99ddbb4c91631ef5cc791");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_70416f1da0be645bb31da01c774");
+
+ entity.HasOne(d => d.User).WithMany(p => p.ConnectedAccounts)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_f47244225a6a1eac04a3463dd90");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Key).HasName("PK_bc0554f736ad71dde346549488a");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_0abb7581d4efc5a8b1361389c5e");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_9adb96a675f555c6169bad7ba62");
+
+ entity.HasOne(d => d.Guild).WithMany(p => p.Emojis).HasConstraintName("FK_4b988e0db89d94cebcf07f598cc");
+
+ entity.HasOne(d => d.User).WithMany(p => p.Emojis).HasConstraintName("FK_fa7ddd5f9a214e28ce596548421");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_e7e7f2a51bd6d96a9ac2aa560f9");
+
+ entity.HasOne(d => d.AfkChannel).WithMany(p => p.GuildAfkChannels).HasConstraintName("FK_f591a66b8019d87b0fe6c12dad6");
+
+ entity.HasOne(d => d.Owner).WithMany(p => p.Guilds).HasConstraintName("FK_fc1a451727e3643ca572a3bb394");
+
+ entity.HasOne(d => d.PublicUpdatesChannel).WithMany(p => p.GuildPublicUpdatesChannels).HasConstraintName("FK_8d450b016dc8bec35f36729e4b0");
+
+ entity.HasOne(d => d.RulesChannel).WithMany(p => p.GuildRulesChannels).HasConstraintName("FK_95828668aa333460582e0ca6396");
+
+ entity.HasOne(d => d.SystemChannel).WithMany(p => p.GuildSystemChannels).HasConstraintName("FK_cfc3d3ad260f8121c95b31a1fce");
+
+ entity.HasOne(d => d.Template).WithMany(p => p.Guilds).HasConstraintName("FK_e2a2f873a64a5cf62526de42325");
+
+ entity.HasOne(d => d.WidgetChannel).WithMany(p => p.GuildWidgetChannels).HasConstraintName("FK_9d1d665379eefde7876a17afa99");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Code).HasName("PK_33fd8a248db1cd832baa8aa25bf");
+
+ entity.HasOne(d => d.Channel).WithMany(p => p.Invites)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_6a15b051fe5050aa00a4b9ff0f6");
+
+ entity.HasOne(d => d.Guild).WithMany(p => p.Invites)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_3f4939aa1461e8af57fea3fb05d");
+
+ entity.HasOne(d => d.Inviter).WithMany(p => p.InviteInviters)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_15c35422032e0b22b4ada95f48f");
+
+ entity.HasOne(d => d.TargetUser).WithMany(p => p.InviteTargetUsers)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_11a0d394f8fc649c19ce5f16b59");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Index).HasName("PK_b4a6b8c2478e5df990909c6cf6a");
+
+ entity.HasOne(d => d.Guild).WithMany(p => p.Members).HasConstraintName("FK_16aceddd5b89825b8ed6029ad1c");
+
+ entity.HasOne(d => d.IdNavigation).WithMany(p => p.Members).HasConstraintName("FK_28b53062261b996d9c99fa12404");
+
+ entity.HasMany(d => d.Roles).WithMany(p => p.Indices)
+ .UsingEntity>(
+ "MemberRole",
+ r => r.HasOne().WithMany()
+ .HasForeignKey("RoleId")
+ .HasConstraintName("FK_e9080e7a7997a0170026d5139c1"),
+ l => l.HasOne().WithMany()
+ .HasForeignKey("Index")
+ .HasConstraintName("FK_5d7ddc8a5f9c167f548625e772e"),
+ j =>
+ {
+ j.HasKey("Index", "RoleId").HasName("PK_951c1d72a0fd1da8760b4a1fd66");
+ j.ToTable("member_roles");
+ j.HasIndex(new[] { "Index" }, "IDX_5d7ddc8a5f9c167f548625e772");
+ j.HasIndex(new[] { "RoleId" }, "IDX_e9080e7a7997a0170026d5139c");
+ j.IndexerProperty("Index").HasColumnName("index");
+ j.IndexerProperty("RoleId")
+ .HasColumnType("character varying")
+ .HasColumnName("role_id");
+ });
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_18325f38ae6de43878487eff986");
+
+ entity.Property(e => e.Flags).HasDefaultValue(0);
+ entity.Property(e => e.Timestamp).HasDefaultValueSql("now()");
+
+ entity.HasOne(d => d.Application).WithMany(p => p.Messages).HasConstraintName("FK_5d3ec1cb962de6488637fd779d6");
+
+ entity.HasOne(d => d.Author).WithMany(p => p.MessageAuthors)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_05535bc695e9f7ee104616459d3");
+
+ entity.HasOne(d => d.Channel).WithMany(p => p.Messages)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_86b9109b155eb70c0a2ca3b4b6d");
+
+ entity.HasOne(d => d.Guild).WithMany(p => p.Messages)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_b193588441b085352a4c0109423");
+
+ entity.HasOne(d => d.Member).WithMany(p => p.MessageMembers)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_b0525304f2262b7014245351c76");
+
+ entity.HasOne(d => d.MessageReferenceNavigation).WithMany(p => p.InverseMessageReferenceNavigation).HasConstraintName("FK_61a92bb65b302a76d9c1fcd3174");
+
+ entity.HasOne(d => d.Webhook).WithMany(p => p.Messages).HasConstraintName("FK_f83c04bcf1df4e5c0e7a52ed348");
+
+ entity.HasMany(d => d.Channels).WithMany(p => p.MessagesNavigation)
+ .UsingEntity>(
+ "MessageChannelMention",
+ r => r.HasOne().WithMany()
+ .HasForeignKey("ChannelsId")
+ .HasConstraintName("FK_bdb8c09e1464cabf62105bf4b9d"),
+ l => l.HasOne().WithMany()
+ .HasForeignKey("MessagesId")
+ .HasConstraintName("FK_2a27102ecd1d81b4582a4360921"),
+ j =>
+ {
+ j.HasKey("MessagesId", "ChannelsId").HasName("PK_85cb45351497cd9d06a79ced65e");
+ j.ToTable("message_channel_mentions");
+ j.HasIndex(new[] { "MessagesId" }, "IDX_2a27102ecd1d81b4582a436092");
+ j.HasIndex(new[] { "ChannelsId" }, "IDX_bdb8c09e1464cabf62105bf4b9");
+ j.IndexerProperty("MessagesId")
+ .HasColumnType("character varying")
+ .HasColumnName("messagesId");
+ j.IndexerProperty("ChannelsId")
+ .HasColumnType("character varying")
+ .HasColumnName("channelsId");
+ });
+
+ entity.HasMany(d => d.Roles).WithMany(p => p.Messages)
+ .UsingEntity>(
+ "MessageRoleMention",
+ r => r.HasOne().WithMany()
+ .HasForeignKey("RolesId")
+ .HasConstraintName("FK_29d63eb1a458200851bc37d074b"),
+ l => l.HasOne().WithMany()
+ .HasForeignKey("MessagesId")
+ .HasConstraintName("FK_a8242cf535337a490b0feaea0b4"),
+ j =>
+ {
+ j.HasKey("MessagesId", "RolesId").HasName("PK_74dba92cc300452a6e14b83ed44");
+ j.ToTable("message_role_mentions");
+ j.HasIndex(new[] { "RolesId" }, "IDX_29d63eb1a458200851bc37d074");
+ j.HasIndex(new[] { "MessagesId" }, "IDX_a8242cf535337a490b0feaea0b");
+ j.IndexerProperty("MessagesId")
+ .HasColumnType("character varying")
+ .HasColumnName("messagesId");
+ j.IndexerProperty("RolesId")
+ .HasColumnType("character varying")
+ .HasColumnName("rolesId");
+ });
+
+ entity.HasMany(d => d.Stickers).WithMany(p => p.Messages)
+ .UsingEntity>(
+ "MessageSticker",
+ r => r.HasOne().WithMany()
+ .HasForeignKey("StickersId")
+ .HasConstraintName("FK_e22a70819d07659c7a71c112a1f"),
+ l => l.HasOne().WithMany()
+ .HasForeignKey("MessagesId")
+ .HasConstraintName("FK_40bb6f23e7cc133292e92829d28"),
+ j =>
+ {
+ j.HasKey("MessagesId", "StickersId").HasName("PK_ed820c4093d0b8cd1d2bcf66087");
+ j.ToTable("message_stickers");
+ j.HasIndex(new[] { "MessagesId" }, "IDX_40bb6f23e7cc133292e92829d2");
+ j.HasIndex(new[] { "StickersId" }, "IDX_e22a70819d07659c7a71c112a1");
+ j.IndexerProperty("MessagesId")
+ .HasColumnType("character varying")
+ .HasColumnName("messagesId");
+ j.IndexerProperty("StickersId")
+ .HasColumnType("character varying")
+ .HasColumnName("stickersId");
+ });
+
+ entity.HasMany(d => d.Users).WithMany(p => p.Messages)
+ .UsingEntity>(
+ "MessageUserMention",
+ r => r.HasOne().WithMany()
+ .HasForeignKey("UsersId")
+ .HasConstraintName("FK_b831eb18ceebd28976239b1e2f8"),
+ l => l.HasOne().WithMany()
+ .HasForeignKey("MessagesId")
+ .HasConstraintName("FK_a343387fc560ef378760681c236"),
+ j =>
+ {
+ j.HasKey("MessagesId", "UsersId").HasName("PK_9b9b6e245ad47a48dbd7605d4fb");
+ j.ToTable("message_user_mentions");
+ j.HasIndex(new[] { "MessagesId" }, "IDX_a343387fc560ef378760681c23");
+ j.HasIndex(new[] { "UsersId" }, "IDX_b831eb18ceebd28976239b1e2f");
+ j.IndexerProperty("MessagesId")
+ .HasColumnType("character varying")
+ .HasColumnName("messagesId");
+ j.IndexerProperty("UsersId")
+ .HasColumnType("character varying")
+ .HasColumnName("usersId");
+ });
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_8c82d7f526340ab734260ea46be");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_af6206538ea96c4e77e9f400c3d");
+
+ entity.HasOne(d => d.Owner).WithMany(p => p.NoteOwners)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_f9e103f8ae67cb1787063597925");
+
+ entity.HasOne(d => d.Target).WithMany(p => p.NoteTargets)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_23e08e5b4481711d573e1abecdc");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_3b4449f1f5fc167d921ee619f65");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_e6956a804978f01b713b1ed58e2");
+
+ entity.HasOne(d => d.Channel).WithMany(p => p.ReadStates).HasConstraintName("FK_40da2fca4e0eaf7a23b5bfc5d34");
+
+ entity.HasOne(d => d.User).WithMany(p => p.ReadStates).HasConstraintName("FK_195f92e4dd1254a4e348c043763");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_de8fc5a9c364568f294798fe1e9");
+
+ entity.Property(e => e.Closed).HasDefaultValue(false);
+
+ entity.HasOne(d => d.Channel).WithMany(p => p.Recipients).HasConstraintName("FK_2f18ee1ba667f233ae86c0ea60e");
+
+ entity.HasOne(d => d.User).WithMany(p => p.Recipients).HasConstraintName("FK_6157e8b6ba4e6e3089616481fe2");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_ba20e2f5cf487408e08e4dcecaf");
+
+ entity.HasOne(d => d.From).WithMany(p => p.RelationshipFroms).HasConstraintName("FK_9af4194bab1250b1c584ae4f1d7");
+
+ entity.HasOne(d => d.To).WithMany(p => p.RelationshipTos).HasConstraintName("FK_9c7f6b98a9843b76dce1b0c878b");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_c1433d71a4838793a49dcad46ab");
+
+ entity.Property(e => e.Flags).HasDefaultValue(0);
+
+ entity.HasOne(d => d.Guild).WithMany(p => p.Roles).HasConstraintName("FK_c32c1ab1c4dc7dcb0278c4b1b8b");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_6e95cdd91779e7cca06d1fff89c");
+
+ entity.HasOne(d => d.User).WithMany(p => p.SecurityKeys)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_24c97d0771cafedce6d7163eaad");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_4aec436cf81177ae97a1bcec3c7");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_3238ef96f18b355b671619111bc");
+
+ entity.HasOne(d => d.User).WithMany(p => p.Sessions)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_085d540d9f418cfbdc7bd55bb19");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_e1dafa4063a5532645cc2810374");
+
+ entity.HasOne(d => d.Guild).WithMany(p => p.Stickers)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_193d551d852aca5347ef5c9f205");
+
+ entity.HasOne(d => d.Pack).WithMany(p => p.Stickers)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_e7cfa5cefa6661b3fb8fda8ce69");
+
+ entity.HasOne(d => d.User).WithMany(p => p.Stickers)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_8f4ee73f2bb2325ff980502e158");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_a27381efea0f876f5d3233af655");
+
+ entity.HasOne(d => d.CoverStickerId1Navigation).WithMany(p => p.StickerPacks).HasConstraintName("FK_448fafba4355ee1c837bbc865f1");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_7e5523774a38b08a6236d322403");
+
+ entity.HasOne(d => d.OwnerUser).WithMany(p => p.Teams).HasConstraintName("FK_13f00abf7cb6096c43ecaf8c108");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_ca3eae89dcf20c9fd95bf7460aa");
+
+ entity.HasOne(d => d.Team).WithMany(p => p.TeamMembers)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_fdad7d5768277e60c40e01cdcea");
+
+ entity.HasOne(d => d.User).WithMany(p => p.TeamMembers)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_c2bf4967c8c2a6b845dadfbf3d4");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_515948649ce0bbbe391de702ae5");
+
+ entity.HasOne(d => d.Creator).WithMany(p => p.Templates).HasConstraintName("FK_d7374b7f8f5fbfdececa4fb62e1");
+
+ entity.HasOne(d => d.SourceGuild).WithMany(p => p.Templates)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_445d00eaaea0e60a017a5ed0c11");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_a3ffb1c0c8416b9fc6f907b7433");
+
+ entity.Property(e => e.WebauthnEnabled).HasDefaultValue(false);
+
+ entity.HasOne(d => d.SettingsIndexNavigation).WithOne(p => p.User).HasConstraintName("FK_0c14beb78d8c5ccba66072adbc7");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Index).HasName("PK_e81f8bb92802737337d35c00981");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Token).HasName("PK_e0f5c8e3fcefe3134a092c50485");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_ada09a50c134fad1369b510e3ce");
+
+ entity.HasOne(d => d.Channel).WithMany(p => p.VoiceStates)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_9f8d389866b40b6657edd026dd4");
+
+ entity.HasOne(d => d.Guild).WithMany(p => p.VoiceStates)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_03779ef216d4b0358470d9cb748");
+
+ entity.HasOne(d => d.User).WithMany(p => p.VoiceStates)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_5fe1d5f931a67e85039c640001b");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK_9e8795cfc899ab7bdaa831e8527");
+
+ entity.HasOne(d => d.Application).WithMany(p => p.Webhooks)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_c3e5305461931763b56aa905f1c");
+
+ entity.HasOne(d => d.Channel).WithMany(p => p.WebhookChannels)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_df528cf77e82f8032230e7e37d8");
+
+ entity.HasOne(d => d.Guild).WithMany(p => p.WebhookGuilds)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_487a7af59d189f744fe394368fc");
+
+ entity.HasOne(d => d.SourceChannel).WithMany(p => p.WebhookSourceChannels)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_4495b7032a33c6b8b605d030398");
+
+ entity.HasOne(d => d.SourceGuild).WithMany(p => p.WebhookSourceGuilds)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_3a285f4f49c40e0706d3018bc9f");
+
+ entity.HasOne(d => d.User).WithMany(p => p.Webhooks)
+ .OnDelete(DeleteBehavior.Cascade)
+ .HasConstraintName("FK_0d523f6f997c86e052c49b1455f");
+ });
+
+ OnModelCreatingPartial(modelBuilder);
+ }
+
+ partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
+}
diff --git a/extra/admin-api/Spacebar.Db/Models/Application.cs b/extra/admin-api/Spacebar.Db/Models/Application.cs
new file mode 100644
index 00000000..27d8a45b
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Models/Application.cs
@@ -0,0 +1,125 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace Spacebar.Db.Models;
+
+[Table("applications")]
+[Index("BotUserId", Name = "REL_2ce5a55796fe4c2f77ece57a64", IsUnique = true)]
+public partial class Application
+{
+ [Key]
+ [Column("id", TypeName = "character varying")]
+ public string Id { get; set; } = null!;
+
+ [Column("name", TypeName = "character varying")]
+ public string Name { get; set; } = null!;
+
+ [Column("icon", TypeName = "character varying")]
+ public string? Icon { get; set; }
+
+ [Column("description", TypeName = "character varying")]
+ public string? Description { get; set; }
+
+ [Column("summary", TypeName = "character varying")]
+ public string? Summary { get; set; }
+
+ [Column("type")]
+ public string? Type { get; set; }
+
+ [Column("hook")]
+ public bool Hook { get; set; }
+
+ [Column("bot_public")]
+ public bool BotPublic { get; set; }
+
+ [Column("bot_require_code_grant")]
+ public bool BotRequireCodeGrant { get; set; }
+
+ [Column("verify_key", TypeName = "character varying")]
+ public string VerifyKey { get; set; } = null!;
+
+ [Column("flags")]
+ public int Flags { get; set; }
+
+ [Column("redirect_uris")]
+ public string? RedirectUris { get; set; }
+
+ [Column("rpc_application_state")]
+ public int? RpcApplicationState { get; set; }
+
+ [Column("store_application_state")]
+ public int? StoreApplicationState { get; set; }
+
+ [Column("verification_state")]
+ public int? VerificationState { get; set; }
+
+ [Column("interactions_endpoint_url", TypeName = "character varying")]
+ public string? InteractionsEndpointUrl { get; set; }
+
+ [Column("integration_public")]
+ public bool? IntegrationPublic { get; set; }
+
+ [Column("integration_require_code_grant")]
+ public bool? IntegrationRequireCodeGrant { get; set; }
+
+ [Column("discoverability_state")]
+ public int? DiscoverabilityState { get; set; }
+
+ [Column("discovery_eligibility_flags")]
+ public int? DiscoveryEligibilityFlags { get; set; }
+
+ [Column("tags")]
+ public string? Tags { get; set; }
+
+ [Column("cover_image", TypeName = "character varying")]
+ public string? CoverImage { get; set; }
+
+ [Column("install_params")]
+ public string? InstallParams { get; set; }
+
+ [Column("terms_of_service_url", TypeName = "character varying")]
+ public string? TermsOfServiceUrl { get; set; }
+
+ [Column("privacy_policy_url", TypeName = "character varying")]
+ public string? PrivacyPolicyUrl { get; set; }
+
+ [Column("guild_id", TypeName = "character varying")]
+ public string? GuildId { get; set; }
+
+ [Column("custom_install_url", TypeName = "character varying")]
+ public string? CustomInstallUrl { get; set; }
+
+ [Column("owner_id", TypeName = "character varying")]
+ public string? OwnerId { get; set; }
+
+ [Column("bot_user_id", TypeName = "character varying")]
+ public string? BotUserId { get; set; }
+
+ [Column("team_id", TypeName = "character varying")]
+ public string? TeamId { get; set; }
+
+ [ForeignKey("BotUserId")]
+ [InverseProperty("ApplicationBotUser")]
+ public virtual User? BotUser { get; set; }
+
+ [ForeignKey("GuildId")]
+ [InverseProperty("Applications")]
+ public virtual Guild? Guild { get; set; }
+
+ [InverseProperty("Application")]
+ public virtual ICollection Messages { get; set; } = new List();
+
+ [ForeignKey("OwnerId")]
+ [InverseProperty("ApplicationOwners")]
+ public virtual User? Owner { get; set; }
+
+ [ForeignKey("TeamId")]
+ [InverseProperty("Applications")]
+ public virtual Team? Team { get; set; }
+
+ [InverseProperty("Application")]
+ public virtual ICollection Webhooks { get; set; } = new List();
+}
diff --git a/extra/admin-api/Spacebar.Db/Models/Attachment.cs b/extra/admin-api/Spacebar.Db/Models/Attachment.cs
new file mode 100644
index 00000000..832f56de
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Models/Attachment.cs
@@ -0,0 +1,43 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace Spacebar.Db.Models;
+
+[Table("attachments")]
+public partial class Attachment
+{
+ [Key]
+ [Column("id", TypeName = "character varying")]
+ public string Id { get; set; } = null!;
+
+ [Column("filename", TypeName = "character varying")]
+ public string Filename { get; set; } = null!;
+
+ [Column("size")]
+ public int Size { get; set; }
+
+ [Column("url", TypeName = "character varying")]
+ public string Url { get; set; } = null!;
+
+ [Column("proxy_url", TypeName = "character varying")]
+ public string ProxyUrl { get; set; } = null!;
+
+ [Column("height")]
+ public int? Height { get; set; }
+
+ [Column("width")]
+ public int? Width { get; set; }
+
+ [Column("content_type", TypeName = "character varying")]
+ public string? ContentType { get; set; }
+
+ [Column("message_id", TypeName = "character varying")]
+ public string? MessageId { get; set; }
+
+ [ForeignKey("MessageId")]
+ [InverseProperty("Attachments")]
+ public virtual Message? Message { get; set; }
+}
diff --git a/extra/admin-api/Spacebar.Db/Models/AuditLog.cs b/extra/admin-api/Spacebar.Db/Models/AuditLog.cs
new file mode 100644
index 00000000..892a4a17
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Models/AuditLog.cs
@@ -0,0 +1,41 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace Spacebar.Db.Models;
+
+[Table("audit_logs")]
+public partial class AuditLog
+{
+ [Key]
+ [Column("id", TypeName = "character varying")]
+ public string Id { get; set; } = null!;
+
+ [Column("user_id", TypeName = "character varying")]
+ public string? UserId { get; set; }
+
+ [Column("action_type")]
+ public int ActionType { get; set; }
+
+ [Column("options")]
+ public string? Options { get; set; }
+
+ [Column("changes")]
+ public string Changes { get; set; } = null!;
+
+ [Column("reason", TypeName = "character varying")]
+ public string? Reason { get; set; }
+
+ [Column("target_id", TypeName = "character varying")]
+ public string? TargetId { get; set; }
+
+ [ForeignKey("TargetId")]
+ [InverseProperty("AuditLogTargets")]
+ public virtual User? Target { get; set; }
+
+ [ForeignKey("UserId")]
+ [InverseProperty("AuditLogUsers")]
+ public virtual User? User { get; set; }
+}
diff --git a/extra/admin-api/Spacebar.Db/Models/BackupCode.cs b/extra/admin-api/Spacebar.Db/Models/BackupCode.cs
new file mode 100644
index 00000000..b73a7233
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Models/BackupCode.cs
@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace Spacebar.Db.Models;
+
+[Table("backup_codes")]
+public partial class BackupCode
+{
+ [Key]
+ [Column("id", TypeName = "character varying")]
+ public string Id { get; set; } = null!;
+
+ [Column("code", TypeName = "character varying")]
+ public string Code { get; set; } = null!;
+
+ [Column("consumed")]
+ public bool Consumed { get; set; }
+
+ [Column("expired")]
+ public bool Expired { get; set; }
+
+ [Column("user_id", TypeName = "character varying")]
+ public string? UserId { get; set; }
+
+ [ForeignKey("UserId")]
+ [InverseProperty("BackupCodes")]
+ public virtual User? User { get; set; }
+}
diff --git a/extra/admin-api/Spacebar.Db/Models/Badge.cs b/extra/admin-api/Spacebar.Db/Models/Badge.cs
new file mode 100644
index 00000000..bdcfaf0d
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Models/Badge.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace Spacebar.Db.Models;
+
+[Table("badges")]
+public partial class Badge
+{
+ [Key]
+ [Column("id", TypeName = "character varying")]
+ public string Id { get; set; } = null!;
+
+ [Column("description", TypeName = "character varying")]
+ public string Description { get; set; } = null!;
+
+ [Column("icon", TypeName = "character varying")]
+ public string Icon { get; set; } = null!;
+
+ [Column("link", TypeName = "character varying")]
+ public string? Link { get; set; }
+}
diff --git a/extra/admin-api/Spacebar.Db/Models/Ban.cs b/extra/admin-api/Spacebar.Db/Models/Ban.cs
new file mode 100644
index 00000000..1b6665d9
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Models/Ban.cs
@@ -0,0 +1,42 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace Spacebar.Db.Models;
+
+[Table("bans")]
+public partial class Ban
+{
+ [Key]
+ [Column("id", TypeName = "character varying")]
+ public string Id { get; set; } = null!;
+
+ [Column("user_id", TypeName = "character varying")]
+ public string? UserId { get; set; }
+
+ [Column("guild_id", TypeName = "character varying")]
+ public string? GuildId { get; set; }
+
+ [Column("executor_id", TypeName = "character varying")]
+ public string? ExecutorId { get; set; }
+
+ [Column("ip", TypeName = "character varying")]
+ public string Ip { get; set; } = null!;
+
+ [Column("reason", TypeName = "character varying")]
+ public string? Reason { get; set; }
+
+ [ForeignKey("ExecutorId")]
+ [InverseProperty("BanExecutors")]
+ public virtual User? Executor { get; set; }
+
+ [ForeignKey("GuildId")]
+ [InverseProperty("Bans")]
+ public virtual Guild? Guild { get; set; }
+
+ [ForeignKey("UserId")]
+ [InverseProperty("BanUsers")]
+ public virtual User? User { get; set; }
+}
diff --git a/extra/admin-api/Spacebar.Db/Models/Category.cs b/extra/admin-api/Spacebar.Db/Models/Category.cs
new file mode 100644
index 00000000..2e800a18
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Models/Category.cs
@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace Spacebar.Db.Models;
+
+[Table("categories")]
+public partial class Category
+{
+ [Key]
+ [Column("id")]
+ public int Id { get; set; }
+
+ [Column("name", TypeName = "character varying")]
+ public string? Name { get; set; }
+
+ [Column("localizations")]
+ public string Localizations { get; set; } = null!;
+
+ [Column("is_primary")]
+ public bool? IsPrimary { get; set; }
+
+ [Column("icon", TypeName = "character varying")]
+ public string? Icon { get; set; }
+}
diff --git a/extra/admin-api/Spacebar.Db/Models/Channel.cs b/extra/admin-api/Spacebar.Db/Models/Channel.cs
new file mode 100644
index 00000000..50c07dcd
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Models/Channel.cs
@@ -0,0 +1,130 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace Spacebar.Db.Models;
+
+[Table("channels")]
+public partial class Channel
+{
+ [Key]
+ [Column("id", TypeName = "character varying")]
+ public string Id { get; set; } = null!;
+
+ [Column("created_at", TypeName = "timestamp without time zone")]
+ public DateTime CreatedAt { get; set; }
+
+ [Column("name", TypeName = "character varying")]
+ public string? Name { get; set; }
+
+ [Column("icon")]
+ public string? Icon { get; set; }
+
+ [Column("type")]
+ public int Type { get; set; }
+
+ [Column("last_message_id", TypeName = "character varying")]
+ public string? LastMessageId { get; set; }
+
+ [Column("guild_id", TypeName = "character varying")]
+ public string? GuildId { get; set; }
+
+ [Column("parent_id", TypeName = "character varying")]
+ public string? ParentId { get; set; }
+
+ [Column("owner_id", TypeName = "character varying")]
+ public string? OwnerId { get; set; }
+
+ [Column("last_pin_timestamp")]
+ public int? LastPinTimestamp { get; set; }
+
+ [Column("default_auto_archive_duration")]
+ public int? DefaultAutoArchiveDuration { get; set; }
+
+ [Column("permission_overwrites")]
+ public string? PermissionOverwrites { get; set; }
+
+ [Column("video_quality_mode")]
+ public int? VideoQualityMode { get; set; }
+
+ [Column("bitrate")]
+ public int? Bitrate { get; set; }
+
+ [Column("user_limit")]
+ public int? UserLimit { get; set; }
+
+ [Column("nsfw")]
+ public bool Nsfw { get; set; }
+
+ [Column("rate_limit_per_user")]
+ public int? RateLimitPerUser { get; set; }
+
+ [Column("topic", TypeName = "character varying")]
+ public string? Topic { get; set; }
+
+ [Column("retention_policy_id", TypeName = "character varying")]
+ public string? RetentionPolicyId { get; set; }
+
+ [Column("flags")]
+ public int Flags { get; set; }
+
+ [Column("default_thread_rate_limit_per_user")]
+ public int DefaultThreadRateLimitPerUser { get; set; }
+
+ [ForeignKey("GuildId")]
+ [InverseProperty("Channels")]
+ public virtual Guild? Guild { get; set; }
+
+ [InverseProperty("AfkChannel")]
+ public virtual ICollection GuildAfkChannels { get; set; } = new List();
+
+ [InverseProperty("PublicUpdatesChannel")]
+ public virtual ICollection GuildPublicUpdatesChannels { get; set; } = new List();
+
+ [InverseProperty("RulesChannel")]
+ public virtual ICollection GuildRulesChannels { get; set; } = new List();
+
+ [InverseProperty("SystemChannel")]
+ public virtual ICollection GuildSystemChannels { get; set; } = new List();
+
+ [InverseProperty("WidgetChannel")]
+ public virtual ICollection GuildWidgetChannels { get; set; } = new List();
+
+ [InverseProperty("Parent")]
+ public virtual ICollection InverseParent { get; set; } = new List();
+
+ [InverseProperty("Channel")]
+ public virtual ICollection Invites { get; set; } = new List();
+
+ [InverseProperty("Channel")]
+ public virtual ICollection Messages { get; set; } = new List();
+
+ [ForeignKey("OwnerId")]
+ [InverseProperty("Channels")]
+ public virtual User? Owner { get; set; }
+
+ [ForeignKey("ParentId")]
+ [InverseProperty("InverseParent")]
+ public virtual Channel? Parent { get; set; }
+
+ [InverseProperty("Channel")]
+ public virtual ICollection ReadStates { get; set; } = new List();
+
+ [InverseProperty("Channel")]
+ public virtual ICollection Recipients { get; set; } = new List();
+
+ [InverseProperty("Channel")]
+ public virtual ICollection VoiceStates { get; set; } = new List();
+
+ [InverseProperty("Channel")]
+ public virtual ICollection WebhookChannels { get; set; } = new List();
+
+ [InverseProperty("SourceChannel")]
+ public virtual ICollection WebhookSourceChannels { get; set; } = new List();
+
+ [ForeignKey("ChannelsId")]
+ [InverseProperty("Channels")]
+ public virtual ICollection MessagesNavigation { get; set; } = new List();
+}
diff --git a/extra/admin-api/Spacebar.Db/Models/ClientRelease.cs b/extra/admin-api/Spacebar.Db/Models/ClientRelease.cs
new file mode 100644
index 00000000..cec74d3e
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Models/ClientRelease.cs
@@ -0,0 +1,33 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace Spacebar.Db.Models;
+
+[Table("client_release")]
+public partial class ClientRelease
+{
+ [Key]
+ [Column("id", TypeName = "character varying")]
+ public string Id { get; set; } = null!;
+
+ [Column("name", TypeName = "character varying")]
+ public string Name { get; set; } = null!;
+
+ [Column("pub_date", TypeName = "timestamp without time zone")]
+ public DateTime PubDate { get; set; }
+
+ [Column("url", TypeName = "character varying")]
+ public string Url { get; set; } = null!;
+
+ [Column("platform", TypeName = "character varying")]
+ public string Platform { get; set; } = null!;
+
+ [Column("enabled")]
+ public bool Enabled { get; set; }
+
+ [Column("notes", TypeName = "character varying")]
+ public string? Notes { get; set; }
+}
diff --git a/extra/admin-api/Spacebar.Db/Models/Config.cs b/extra/admin-api/Spacebar.Db/Models/Config.cs
new file mode 100644
index 00000000..1b7c50ef
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Models/Config.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace Spacebar.Db.Models;
+
+[Table("config")]
+public partial class Config
+{
+ [Key]
+ [Column("key", TypeName = "character varying")]
+ public string Key { get; set; } = null!;
+
+ [Column("value")]
+ public string? Value { get; set; }
+}
diff --git a/extra/admin-api/Spacebar.Db/Models/ConnectedAccount.cs b/extra/admin-api/Spacebar.Db/Models/ConnectedAccount.cs
new file mode 100644
index 00000000..30b6033c
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Models/ConnectedAccount.cs
@@ -0,0 +1,61 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace Spacebar.Db.Models;
+
+[Table("connected_accounts")]
+public partial class ConnectedAccount
+{
+ [Key]
+ [Column("id", TypeName = "character varying")]
+ public string Id { get; set; } = null!;
+
+ [Column("external_id", TypeName = "character varying")]
+ public string ExternalId { get; set; } = null!;
+
+ [Column("user_id", TypeName = "character varying")]
+ public string? UserId { get; set; }
+
+ [Column("friend_sync")]
+ public bool FriendSync { get; set; }
+
+ [Column("name", TypeName = "character varying")]
+ public string Name { get; set; } = null!;
+
+ [Column("revoked")]
+ public bool Revoked { get; set; }
+
+ [Column("show_activity")]
+ public int ShowActivity { get; set; }
+
+ [Column("type", TypeName = "character varying")]
+ public string Type { get; set; } = null!;
+
+ [Column("verified")]
+ public bool Verified { get; set; }
+
+ [Column("visibility")]
+ public int Visibility { get; set; }
+
+ [Column("integrations")]
+ public string Integrations { get; set; } = null!;
+
+ [Column("metadata")]
+ public string? Metadata { get; set; }
+
+ [Column("metadata_visibility")]
+ public int MetadataVisibility { get; set; }
+
+ [Column("two_way_link")]
+ public bool TwoWayLink { get; set; }
+
+ [Column("token_data")]
+ public string? TokenData { get; set; }
+
+ [ForeignKey("UserId")]
+ [InverseProperty("ConnectedAccounts")]
+ public virtual User? User { get; set; }
+}
diff --git a/extra/admin-api/Spacebar.Db/Models/ConnectionConfig.cs b/extra/admin-api/Spacebar.Db/Models/ConnectionConfig.cs
new file mode 100644
index 00000000..414af3b9
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Models/ConnectionConfig.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace Spacebar.Db.Models;
+
+[Table("connection_config")]
+public partial class ConnectionConfig
+{
+ [Key]
+ [Column("key", TypeName = "character varying")]
+ public string Key { get; set; } = null!;
+
+ [Column("value")]
+ public string? Value { get; set; }
+}
diff --git a/extra/admin-api/Spacebar.Db/Models/EmbedCache.cs b/extra/admin-api/Spacebar.Db/Models/EmbedCache.cs
new file mode 100644
index 00000000..1a6e35a0
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Models/EmbedCache.cs
@@ -0,0 +1,21 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace Spacebar.Db.Models;
+
+[Table("embed_cache")]
+public partial class EmbedCache
+{
+ [Key]
+ [Column("id", TypeName = "character varying")]
+ public string Id { get; set; } = null!;
+
+ [Column("url", TypeName = "character varying")]
+ public string Url { get; set; } = null!;
+
+ [Column("embed")]
+ public string Embed { get; set; } = null!;
+}
diff --git a/extra/admin-api/Spacebar.Db/Models/Emoji.cs b/extra/admin-api/Spacebar.Db/Models/Emoji.cs
new file mode 100644
index 00000000..12af34c8
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Models/Emoji.cs
@@ -0,0 +1,50 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace Spacebar.Db.Models;
+
+[Table("emojis")]
+public partial class Emoji
+{
+ [Key]
+ [Column("id", TypeName = "character varying")]
+ public string Id { get; set; } = null!;
+
+ [Column("animated")]
+ public bool Animated { get; set; }
+
+ [Column("available")]
+ public bool Available { get; set; }
+
+ [Column("guild_id", TypeName = "character varying")]
+ public string GuildId { get; set; } = null!;
+
+ [Column("user_id", TypeName = "character varying")]
+ public string? UserId { get; set; }
+
+ [Column("managed")]
+ public bool Managed { get; set; }
+
+ [Column("name", TypeName = "character varying")]
+ public string Name { get; set; } = null!;
+
+ [Column("require_colons")]
+ public bool RequireColons { get; set; }
+
+ [Column("roles")]
+ public string Roles { get; set; } = null!;
+
+ [Column("groups")]
+ public string? Groups { get; set; }
+
+ [ForeignKey("GuildId")]
+ [InverseProperty("Emojis")]
+ public virtual Guild Guild { get; set; } = null!;
+
+ [ForeignKey("UserId")]
+ [InverseProperty("Emojis")]
+ public virtual User? User { get; set; }
+}
diff --git a/extra/admin-api/Spacebar.Db/Models/Guild.cs b/extra/admin-api/Spacebar.Db/Models/Guild.cs
new file mode 100644
index 00000000..0cc80b05
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Models/Guild.cs
@@ -0,0 +1,199 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace Spacebar.Db.Models;
+
+[Table("guilds")]
+public partial class Guild
+{
+ [Key]
+ [Column("id", TypeName = "character varying")]
+ public string Id { get; set; } = null!;
+
+ [Column("afk_channel_id", TypeName = "character varying")]
+ public string? AfkChannelId { get; set; }
+
+ [Column("afk_timeout")]
+ public int? AfkTimeout { get; set; }
+
+ [Column("banner", TypeName = "character varying")]
+ public string? Banner { get; set; }
+
+ [Column("default_message_notifications")]
+ public int? DefaultMessageNotifications { get; set; }
+
+ [Column("description", TypeName = "character varying")]
+ public string? Description { get; set; }
+
+ [Column("discovery_splash", TypeName = "character varying")]
+ public string? DiscoverySplash { get; set; }
+
+ [Column("explicit_content_filter")]
+ public int? ExplicitContentFilter { get; set; }
+
+ [Column("features")]
+ public string Features { get; set; } = null!;
+
+ [Column("primary_category_id", TypeName = "character varying")]
+ public string? PrimaryCategoryId { get; set; }
+
+ [Column("icon", TypeName = "character varying")]
+ public string? Icon { get; set; }
+
+ [Column("large")]
+ public bool Large { get; set; }
+
+ [Column("max_members")]
+ public int? MaxMembers { get; set; }
+
+ [Column("max_presences")]
+ public int? MaxPresences { get; set; }
+
+ [Column("max_video_channel_users")]
+ public int? MaxVideoChannelUsers { get; set; }
+
+ [Column("member_count")]
+ public int? MemberCount { get; set; }
+
+ [Column("presence_count")]
+ public int? PresenceCount { get; set; }
+
+ [Column("template_id", TypeName = "character varying")]
+ public string? TemplateId { get; set; }
+
+ [Column("mfa_level")]
+ public int? MfaLevel { get; set; }
+
+ [Column("name", TypeName = "character varying")]
+ public string Name { get; set; } = null!;
+
+ [Column("owner_id", TypeName = "character varying")]
+ public string? OwnerId { get; set; }
+
+ [Column("preferred_locale", TypeName = "character varying")]
+ public string? PreferredLocale { get; set; }
+
+ [Column("premium_subscription_count")]
+ public int? PremiumSubscriptionCount { get; set; }
+
+ [Column("premium_tier")]
+ public int PremiumTier { get; set; }
+
+ [Column("public_updates_channel_id", TypeName = "character varying")]
+ public string? PublicUpdatesChannelId { get; set; }
+
+ [Column("rules_channel_id", TypeName = "character varying")]
+ public string? RulesChannelId { get; set; }
+
+ [Column("region", TypeName = "character varying")]
+ public string? Region { get; set; }
+
+ [Column("splash", TypeName = "character varying")]
+ public string? Splash { get; set; }
+
+ [Column("system_channel_id", TypeName = "character varying")]
+ public string? SystemChannelId { get; set; }
+
+ [Column("system_channel_flags")]
+ public int? SystemChannelFlags { get; set; }
+
+ [Column("unavailable")]
+ public bool Unavailable { get; set; }
+
+ [Column("verification_level")]
+ public int? VerificationLevel { get; set; }
+
+ [Column("welcome_screen")]
+ public string WelcomeScreen { get; set; } = null!;
+
+ [Column("widget_channel_id", TypeName = "character varying")]
+ public string? WidgetChannelId { get; set; }
+
+ [Column("widget_enabled")]
+ public bool WidgetEnabled { get; set; }
+
+ [Column("nsfw_level")]
+ public int? NsfwLevel { get; set; }
+
+ [Column("nsfw")]
+ public bool Nsfw { get; set; }
+
+ [Column("parent", TypeName = "character varying")]
+ public string? Parent { get; set; }
+
+ [Column("premium_progress_bar_enabled")]
+ public bool? PremiumProgressBarEnabled { get; set; }
+
+ [Column("channel_ordering")]
+ public string ChannelOrdering { get; set; } = null!;
+
+ [ForeignKey("AfkChannelId")]
+ [InverseProperty("GuildAfkChannels")]
+ public virtual Channel? AfkChannel { get; set; }
+
+ [InverseProperty("Guild")]
+ public virtual ICollection Applications { get; set; } = new List();
+
+ [InverseProperty("Guild")]
+ public virtual ICollection Bans { get; set; } = new List();
+
+ [InverseProperty("Guild")]
+ public virtual ICollection Channels { get; set; } = new List();
+
+ [InverseProperty("Guild")]
+ public virtual ICollection Emojis { get; set; } = new List();
+
+ [InverseProperty("Guild")]
+ public virtual ICollection Invites { get; set; } = new List();
+
+ [InverseProperty("Guild")]
+ public virtual ICollection Members { get; set; } = new List();
+
+ [InverseProperty("Guild")]
+ public virtual ICollection Messages { get; set; } = new List();
+
+ [ForeignKey("OwnerId")]
+ [InverseProperty("Guilds")]
+ public virtual User? Owner { get; set; }
+
+ [ForeignKey("PublicUpdatesChannelId")]
+ [InverseProperty("GuildPublicUpdatesChannels")]
+ public virtual Channel? PublicUpdatesChannel { get; set; }
+
+ [InverseProperty("Guild")]
+ public virtual ICollection Roles { get; set; } = new List();
+
+ [ForeignKey("RulesChannelId")]
+ [InverseProperty("GuildRulesChannels")]
+ public virtual Channel? RulesChannel { get; set; }
+
+ [InverseProperty("Guild")]
+ public virtual ICollection Stickers { get; set; } = new List();
+
+ [ForeignKey("SystemChannelId")]
+ [InverseProperty("GuildSystemChannels")]
+ public virtual Channel? SystemChannel { get; set; }
+
+ [ForeignKey("TemplateId")]
+ [InverseProperty("Guilds")]
+ public virtual Template? Template { get; set; }
+
+ [InverseProperty("SourceGuild")]
+ public virtual ICollection Templates { get; set; } = new List();
+
+ [InverseProperty("Guild")]
+ public virtual ICollection VoiceStates { get; set; } = new List();
+
+ [InverseProperty("Guild")]
+ public virtual ICollection WebhookGuilds { get; set; } = new List();
+
+ [InverseProperty("SourceGuild")]
+ public virtual ICollection WebhookSourceGuilds { get; set; } = new List();
+
+ [ForeignKey("WidgetChannelId")]
+ [InverseProperty("GuildWidgetChannels")]
+ public virtual Channel? WidgetChannel { get; set; }
+}
diff --git a/extra/admin-api/Spacebar.Db/Models/Invite.cs b/extra/admin-api/Spacebar.Db/Models/Invite.cs
new file mode 100644
index 00000000..449bb5b4
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Models/Invite.cs
@@ -0,0 +1,70 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace Spacebar.Db.Models;
+
+[Table("invites")]
+public partial class Invite
+{
+ [Key]
+ [Column("code", TypeName = "character varying")]
+ public string Code { get; set; } = null!;
+
+ [Column("temporary")]
+ public bool Temporary { get; set; }
+
+ [Column("uses")]
+ public int Uses { get; set; }
+
+ [Column("max_uses")]
+ public int MaxUses { get; set; }
+
+ [Column("max_age")]
+ public int MaxAge { get; set; }
+
+ [Column("created_at", TypeName = "timestamp without time zone")]
+ public DateTime CreatedAt { get; set; }
+
+ [Column("expires_at", TypeName = "timestamp without time zone")]
+ public DateTime? ExpiresAt { get; set; }
+
+ [Column("guild_id", TypeName = "character varying")]
+ public string? GuildId { get; set; }
+
+ [Column("channel_id", TypeName = "character varying")]
+ public string? ChannelId { get; set; }
+
+ [Column("inviter_id", TypeName = "character varying")]
+ public string? InviterId { get; set; }
+
+ [Column("target_user_id", TypeName = "character varying")]
+ public string? TargetUserId { get; set; }
+
+ [Column("target_user_type")]
+ public int? TargetUserType { get; set; }
+
+ [Column("vanity_url")]
+ public bool? VanityUrl { get; set; }
+
+ [Column("flags")]
+ public int Flags { get; set; }
+
+ [ForeignKey("ChannelId")]
+ [InverseProperty("Invites")]
+ public virtual Channel? Channel { get; set; }
+
+ [ForeignKey("GuildId")]
+ [InverseProperty("Invites")]
+ public virtual Guild? Guild { get; set; }
+
+ [ForeignKey("InviterId")]
+ [InverseProperty("InviteInviters")]
+ public virtual User? Inviter { get; set; }
+
+ [ForeignKey("TargetUserId")]
+ [InverseProperty("InviteTargetUsers")]
+ public virtual User? TargetUser { get; set; }
+}
diff --git a/extra/admin-api/Spacebar.Db/Models/Member.cs b/extra/admin-api/Spacebar.Db/Models/Member.cs
new file mode 100644
index 00000000..df63dfa4
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Models/Member.cs
@@ -0,0 +1,79 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace Spacebar.Db.Models;
+
+[Table("members")]
+[Index("Id", "GuildId", Name = "IDX_bb2bf9386ac443afbbbf9f12d3", IsUnique = true)]
+public partial class Member
+{
+ [Key]
+ [Column("index")]
+ public int Index { get; set; }
+
+ [Column("id", TypeName = "character varying")]
+ public string Id { get; set; } = null!;
+
+ [Column("guild_id", TypeName = "character varying")]
+ public string GuildId { get; set; } = null!;
+
+ [Column("nick", TypeName = "character varying")]
+ public string? Nick { get; set; }
+
+ [Column("joined_at", TypeName = "timestamp without time zone")]
+ public DateTime JoinedAt { get; set; }
+
+ [Column("premium_since")]
+ public long? PremiumSince { get; set; }
+
+ [Column("deaf")]
+ public bool Deaf { get; set; }
+
+ [Column("mute")]
+ public bool Mute { get; set; }
+
+ [Column("pending")]
+ public bool Pending { get; set; }
+
+ [Column("settings")]
+ public string Settings { get; set; } = null!;
+
+ [Column("last_message_id", TypeName = "character varying")]
+ public string? LastMessageId { get; set; }
+
+ [Column("joined_by", TypeName = "character varying")]
+ public string? JoinedBy { get; set; }
+
+ [Column("avatar", TypeName = "character varying")]
+ public string? Avatar { get; set; }
+
+ [Column("banner", TypeName = "character varying")]
+ public string? Banner { get; set; }
+
+ [Column("bio", TypeName = "character varying")]
+ public string Bio { get; set; } = null!;
+
+ [Column("theme_colors")]
+ public string? ThemeColors { get; set; }
+
+ [Column("pronouns", TypeName = "character varying")]
+ public string? Pronouns { get; set; }
+
+ [Column("communication_disabled_until", TypeName = "timestamp without time zone")]
+ public DateTime? CommunicationDisabledUntil { get; set; }
+
+ [ForeignKey("GuildId")]
+ [InverseProperty("Members")]
+ public virtual Guild Guild { get; set; } = null!;
+
+ [ForeignKey("Id")]
+ [InverseProperty("Members")]
+ public virtual User IdNavigation { get; set; } = null!;
+
+ [ForeignKey("Index")]
+ [InverseProperty("Indices")]
+ public virtual ICollection Roles { get; set; } = new List();
+}
diff --git a/extra/admin-api/Spacebar.Db/Models/Message.cs b/extra/admin-api/Spacebar.Db/Models/Message.cs
new file mode 100644
index 00000000..af3f79fe
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Models/Message.cs
@@ -0,0 +1,143 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace Spacebar.Db.Models;
+
+[Table("messages")]
+[Index("AuthorId", Name = "IDX_05535bc695e9f7ee104616459d")]
+[Index("ChannelId", "Id", Name = "IDX_3ed7a60fb7dbe04e1ba9332a8b", IsUnique = true)]
+[Index("ChannelId", Name = "IDX_86b9109b155eb70c0a2ca3b4b6")]
+public partial class Message
+{
+ [Key]
+ [Column("id", TypeName = "character varying")]
+ public string Id { get; set; } = null!;
+
+ [Column("channel_id", TypeName = "character varying")]
+ public string? ChannelId { get; set; }
+
+ [Column("guild_id", TypeName = "character varying")]
+ public string? GuildId { get; set; }
+
+ [Column("author_id", TypeName = "character varying")]
+ public string? AuthorId { get; set; }
+
+ [Column("member_id", TypeName = "character varying")]
+ public string? MemberId { get; set; }
+
+ [Column("webhook_id", TypeName = "character varying")]
+ public string? WebhookId { get; set; }
+
+ [Column("application_id", TypeName = "character varying")]
+ public string? ApplicationId { get; set; }
+
+ [Column("content", TypeName = "character varying")]
+ public string? Content { get; set; }
+
+ [Column("timestamp", TypeName = "timestamp without time zone")]
+ public DateTime Timestamp { get; set; }
+
+ [Column("edited_timestamp", TypeName = "timestamp without time zone")]
+ public DateTime? EditedTimestamp { get; set; }
+
+ [Column("tts")]
+ public bool? Tts { get; set; }
+
+ [Column("mention_everyone")]
+ public bool? MentionEveryone { get; set; }
+
+ [Column("embeds")]
+ public string Embeds { get; set; } = null!;
+
+ [Column("reactions")]
+ public string Reactions { get; set; } = null!;
+
+ [Column("nonce")]
+ public string? Nonce { get; set; }
+
+ [Column("pinned")]
+ public bool? Pinned { get; set; }
+
+ [Column("type")]
+ public int Type { get; set; }
+
+ [Column("activity")]
+ public string? Activity { get; set; }
+
+ [Column("flags")]
+ public int Flags { get; set; }
+
+ [Column("message_reference")]
+ public string? MessageReference { get; set; }
+
+ [Column("interaction")]
+ public string? Interaction { get; set; }
+
+ [Column("components")]
+ public string? Components { get; set; }
+
+ [Column("poll")]
+ public string? Poll { get; set; }
+
+ [Column("username", TypeName = "character varying")]
+ public string? Username { get; set; }
+
+ [Column("avatar", TypeName = "character varying")]
+ public string? Avatar { get; set; }
+
+ [Column("message_reference_id", TypeName = "character varying")]
+ public string? MessageReferenceId { get; set; }
+
+ [ForeignKey("ApplicationId")]
+ [InverseProperty("Messages")]
+ public virtual Application? Application { get; set; }
+
+ [InverseProperty("Message")]
+ public virtual ICollection Attachments { get; set; } = new List();
+
+ [ForeignKey("AuthorId")]
+ [InverseProperty("MessageAuthors")]
+ public virtual User? Author { get; set; }
+
+ [ForeignKey("ChannelId")]
+ [InverseProperty("Messages")]
+ public virtual Channel? Channel { get; set; }
+
+ [ForeignKey("GuildId")]
+ [InverseProperty("Messages")]
+ public virtual Guild? Guild { get; set; }
+
+ [InverseProperty("MessageReferenceNavigation")]
+ public virtual ICollection InverseMessageReferenceNavigation { get; set; } = new List();
+
+ [ForeignKey("MemberId")]
+ [InverseProperty("MessageMembers")]
+ public virtual User? Member { get; set; }
+
+ [ForeignKey("MessageReferenceId")]
+ [InverseProperty("InverseMessageReferenceNavigation")]
+ public virtual Message? MessageReferenceNavigation { get; set; }
+
+ [ForeignKey("WebhookId")]
+ [InverseProperty("Messages")]
+ public virtual Webhook? Webhook { get; set; }
+
+ [ForeignKey("MessagesId")]
+ [InverseProperty("MessagesNavigation")]
+ public virtual ICollection Channels { get; set; } = new List();
+
+ [ForeignKey("MessagesId")]
+ [InverseProperty("Messages")]
+ public virtual ICollection Roles { get; set; } = new List();
+
+ [ForeignKey("MessagesId")]
+ [InverseProperty("Messages")]
+ public virtual ICollection Stickers { get; set; } = new List();
+
+ [ForeignKey("MessagesId")]
+ [InverseProperty("Messages")]
+ public virtual ICollection Users { get; set; } = new List();
+}
diff --git a/extra/admin-api/Spacebar.Db/Models/Migration.cs b/extra/admin-api/Spacebar.Db/Models/Migration.cs
new file mode 100644
index 00000000..7bf1194f
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Models/Migration.cs
@@ -0,0 +1,21 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace Spacebar.Db.Models;
+
+[Table("migrations")]
+public partial class Migration
+{
+ [Key]
+ [Column("id")]
+ public int Id { get; set; }
+
+ [Column("timestamp")]
+ public long Timestamp { get; set; }
+
+ [Column("name", TypeName = "character varying")]
+ public string Name { get; set; } = null!;
+}
diff --git a/extra/admin-api/Spacebar.Db/Models/Note.cs b/extra/admin-api/Spacebar.Db/Models/Note.cs
new file mode 100644
index 00000000..55bfb9d2
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Models/Note.cs
@@ -0,0 +1,33 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace Spacebar.Db.Models;
+
+[Table("notes")]
+[Index("OwnerId", "TargetId", Name = "UQ_74e6689b9568cc965b8bfc9150b", IsUnique = true)]
+public partial class Note
+{
+ [Key]
+ [Column("id", TypeName = "character varying")]
+ public string Id { get; set; } = null!;
+
+ [Column("content", TypeName = "character varying")]
+ public string Content { get; set; } = null!;
+
+ [Column("owner_id", TypeName = "character varying")]
+ public string? OwnerId { get; set; }
+
+ [Column("target_id", TypeName = "character varying")]
+ public string? TargetId { get; set; }
+
+ [ForeignKey("OwnerId")]
+ [InverseProperty("NoteOwners")]
+ public virtual User? Owner { get; set; }
+
+ [ForeignKey("TargetId")]
+ [InverseProperty("NoteTargets")]
+ public virtual User? Target { get; set; }
+}
diff --git a/extra/admin-api/Spacebar.Db/Models/RateLimit.cs b/extra/admin-api/Spacebar.Db/Models/RateLimit.cs
new file mode 100644
index 00000000..3414c2bc
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Models/RateLimit.cs
@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace Spacebar.Db.Models;
+
+[Table("rate_limits")]
+public partial class RateLimit
+{
+ [Key]
+ [Column("id", TypeName = "character varying")]
+ public string Id { get; set; } = null!;
+
+ [Column("executor_id", TypeName = "character varying")]
+ public string ExecutorId { get; set; } = null!;
+
+ [Column("hits")]
+ public int Hits { get; set; }
+
+ [Column("blocked")]
+ public bool Blocked { get; set; }
+
+ [Column("expires_at", TypeName = "timestamp without time zone")]
+ public DateTime ExpiresAt { get; set; }
+}
diff --git a/extra/admin-api/Spacebar.Db/Models/ReadState.cs b/extra/admin-api/Spacebar.Db/Models/ReadState.cs
new file mode 100644
index 00000000..04bbae2b
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Models/ReadState.cs
@@ -0,0 +1,45 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace Spacebar.Db.Models;
+
+[Table("read_states")]
+[Index("ChannelId", "UserId", Name = "IDX_0abf8b443321bd3cf7f81ee17a", IsUnique = true)]
+public partial class ReadState
+{
+ [Key]
+ [Column("id", TypeName = "character varying")]
+ public string Id { get; set; } = null!;
+
+ [Column("channel_id", TypeName = "character varying")]
+ public string ChannelId { get; set; } = null!;
+
+ [Column("user_id", TypeName = "character varying")]
+ public string UserId { get; set; } = null!;
+
+ [Column("last_message_id", TypeName = "character varying")]
+ public string? LastMessageId { get; set; }
+
+ [Column("public_ack", TypeName = "character varying")]
+ public string? PublicAck { get; set; }
+
+ [Column("notifications_cursor", TypeName = "character varying")]
+ public string? NotificationsCursor { get; set; }
+
+ [Column("last_pin_timestamp", TypeName = "timestamp without time zone")]
+ public DateTime? LastPinTimestamp { get; set; }
+
+ [Column("mention_count")]
+ public int? MentionCount { get; set; }
+
+ [ForeignKey("ChannelId")]
+ [InverseProperty("ReadStates")]
+ public virtual Channel Channel { get; set; } = null!;
+
+ [ForeignKey("UserId")]
+ [InverseProperty("ReadStates")]
+ public virtual User User { get; set; } = null!;
+}
diff --git a/extra/admin-api/Spacebar.Db/Models/Recipient.cs b/extra/admin-api/Spacebar.Db/Models/Recipient.cs
new file mode 100644
index 00000000..d89c47d7
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Models/Recipient.cs
@@ -0,0 +1,32 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace Spacebar.Db.Models;
+
+[Table("recipients")]
+public partial class Recipient
+{
+ [Key]
+ [Column("id", TypeName = "character varying")]
+ public string Id { get; set; } = null!;
+
+ [Column("channel_id", TypeName = "character varying")]
+ public string ChannelId { get; set; } = null!;
+
+ [Column("user_id", TypeName = "character varying")]
+ public string UserId { get; set; } = null!;
+
+ [Column("closed")]
+ public bool Closed { get; set; }
+
+ [ForeignKey("ChannelId")]
+ [InverseProperty("Recipients")]
+ public virtual Channel Channel { get; set; } = null!;
+
+ [ForeignKey("UserId")]
+ [InverseProperty("Recipients")]
+ public virtual User User { get; set; } = null!;
+}
diff --git a/extra/admin-api/Spacebar.Db/Models/Relationship.cs b/extra/admin-api/Spacebar.Db/Models/Relationship.cs
new file mode 100644
index 00000000..99a43ad7
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Models/Relationship.cs
@@ -0,0 +1,36 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace Spacebar.Db.Models;
+
+[Table("relationships")]
+[Index("FromId", "ToId", Name = "IDX_a0b2ff0a598df0b0d055934a17", IsUnique = true)]
+public partial class Relationship
+{
+ [Key]
+ [Column("id", TypeName = "character varying")]
+ public string Id { get; set; } = null!;
+
+ [Column("from_id", TypeName = "character varying")]
+ public string FromId { get; set; } = null!;
+
+ [Column("to_id", TypeName = "character varying")]
+ public string ToId { get; set; } = null!;
+
+ [Column("nickname", TypeName = "character varying")]
+ public string? Nickname { get; set; }
+
+ [Column("type")]
+ public int Type { get; set; }
+
+ [ForeignKey("FromId")]
+ [InverseProperty("RelationshipFroms")]
+ public virtual User From { get; set; } = null!;
+
+ [ForeignKey("ToId")]
+ [InverseProperty("RelationshipTos")]
+ public virtual User To { get; set; } = null!;
+}
diff --git a/extra/admin-api/Spacebar.Db/Models/Role.cs b/extra/admin-api/Spacebar.Db/Models/Role.cs
new file mode 100644
index 00000000..7991617e
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Models/Role.cs
@@ -0,0 +1,63 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace Spacebar.Db.Models;
+
+[Table("roles")]
+public partial class Role
+{
+ [Key]
+ [Column("id", TypeName = "character varying")]
+ public string Id { get; set; } = null!;
+
+ [Column("guild_id", TypeName = "character varying")]
+ public string GuildId { get; set; } = null!;
+
+ [Column("color")]
+ public int Color { get; set; }
+
+ [Column("hoist")]
+ public bool Hoist { get; set; }
+
+ [Column("managed")]
+ public bool Managed { get; set; }
+
+ [Column("mentionable")]
+ public bool Mentionable { get; set; }
+
+ [Column("name", TypeName = "character varying")]
+ public string Name { get; set; } = null!;
+
+ [Column("permissions", TypeName = "character varying")]
+ public string Permissions { get; set; } = null!;
+
+ [Column("position")]
+ public int Position { get; set; }
+
+ [Column("icon", TypeName = "character varying")]
+ public string? Icon { get; set; }
+
+ [Column("unicode_emoji", TypeName = "character varying")]
+ public string? UnicodeEmoji { get; set; }
+
+ [Column("tags")]
+ public string? Tags { get; set; }
+
+ [Column("flags")]
+ public int Flags { get; set; }
+
+ [ForeignKey("GuildId")]
+ [InverseProperty("Roles")]
+ public virtual Guild Guild { get; set; } = null!;
+
+ [ForeignKey("RoleId")]
+ [InverseProperty("Roles")]
+ public virtual ICollection Indices { get; set; } = new List();
+
+ [ForeignKey("RolesId")]
+ [InverseProperty("Roles")]
+ public virtual ICollection Messages { get; set; } = new List();
+}
diff --git a/extra/admin-api/Spacebar.Db/Models/SecurityKey.cs b/extra/admin-api/Spacebar.Db/Models/SecurityKey.cs
new file mode 100644
index 00000000..d96c98cd
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Models/SecurityKey.cs
@@ -0,0 +1,34 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace Spacebar.Db.Models;
+
+[Table("security_keys")]
+public partial class SecurityKey
+{
+ [Key]
+ [Column("id", TypeName = "character varying")]
+ public string Id { get; set; } = null!;
+
+ [Column("user_id", TypeName = "character varying")]
+ public string? UserId { get; set; }
+
+ [Column("key_id", TypeName = "character varying")]
+ public string KeyId { get; set; } = null!;
+
+ [Column("public_key", TypeName = "character varying")]
+ public string PublicKey { get; set; } = null!;
+
+ [Column("counter")]
+ public int Counter { get; set; }
+
+ [Column("name", TypeName = "character varying")]
+ public string Name { get; set; } = null!;
+
+ [ForeignKey("UserId")]
+ [InverseProperty("SecurityKeys")]
+ public virtual User? User { get; set; }
+}
diff --git a/extra/admin-api/Spacebar.Db/Models/SecuritySetting.cs b/extra/admin-api/Spacebar.Db/Models/SecuritySetting.cs
new file mode 100644
index 00000000..4df21e4d
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Models/SecuritySetting.cs
@@ -0,0 +1,33 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace Spacebar.Db.Models;
+
+[Table("security_settings")]
+public partial class SecuritySetting
+{
+ [Key]
+ [Column("id", TypeName = "character varying")]
+ public string Id { get; set; } = null!;
+
+ [Column("guild_id", TypeName = "character varying")]
+ public string? GuildId { get; set; }
+
+ [Column("channel_id", TypeName = "character varying")]
+ public string? ChannelId { get; set; }
+
+ [Column("encryption_permission_mask")]
+ public int EncryptionPermissionMask { get; set; }
+
+ [Column("allowed_algorithms")]
+ public string AllowedAlgorithms { get; set; } = null!;
+
+ [Column("current_algorithm", TypeName = "character varying")]
+ public string CurrentAlgorithm { get; set; } = null!;
+
+ [Column("used_since_message", TypeName = "character varying")]
+ public string? UsedSinceMessage { get; set; }
+}
diff --git a/extra/admin-api/Spacebar.Db/Models/Session.cs b/extra/admin-api/Spacebar.Db/Models/Session.cs
new file mode 100644
index 00000000..b27ad1f3
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Models/Session.cs
@@ -0,0 +1,37 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace Spacebar.Db.Models;
+
+[Table("sessions")]
+public partial class Session
+{
+ [Key]
+ [Column("id", TypeName = "character varying")]
+ public string Id { get; set; } = null!;
+
+ [Column("user_id", TypeName = "character varying")]
+ public string? UserId { get; set; }
+
+ [Column("session_id", TypeName = "character varying")]
+ public string SessionId { get; set; } = null!;
+
+ [Column("activities")]
+ public string? Activities { get; set; }
+
+ [Column("client_info")]
+ public string ClientInfo { get; set; } = null!;
+
+ [Column("client_status")]
+ public string ClientStatus { get; set; } = null!;
+
+ [Column("status", TypeName = "character varying")]
+ public string Status { get; set; } = null!;
+
+ [ForeignKey("UserId")]
+ [InverseProperty("Sessions")]
+ public virtual User? User { get; set; }
+}
diff --git a/extra/admin-api/Spacebar.Db/Models/Sticker.cs b/extra/admin-api/Spacebar.Db/Models/Sticker.cs
new file mode 100644
index 00000000..9d3571a0
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Models/Sticker.cs
@@ -0,0 +1,61 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace Spacebar.Db.Models;
+
+[Table("stickers")]
+public partial class Sticker
+{
+ [Key]
+ [Column("id", TypeName = "character varying")]
+ public string Id { get; set; } = null!;
+
+ [Column("name", TypeName = "character varying")]
+ public string Name { get; set; } = null!;
+
+ [Column("description", TypeName = "character varying")]
+ public string? Description { get; set; }
+
+ [Column("available")]
+ public bool? Available { get; set; }
+
+ [Column("tags", TypeName = "character varying")]
+ public string? Tags { get; set; }
+
+ [Column("pack_id", TypeName = "character varying")]
+ public string? PackId { get; set; }
+
+ [Column("guild_id", TypeName = "character varying")]
+ public string? GuildId { get; set; }
+
+ [Column("user_id", TypeName = "character varying")]
+ public string? UserId { get; set; }
+
+ [Column("type")]
+ public int Type { get; set; }
+
+ [Column("format_type")]
+ public int FormatType { get; set; }
+
+ [ForeignKey("GuildId")]
+ [InverseProperty("Stickers")]
+ public virtual Guild? Guild { get; set; }
+
+ [ForeignKey("PackId")]
+ [InverseProperty("Stickers")]
+ public virtual StickerPack? Pack { get; set; }
+
+ [InverseProperty("CoverStickerId1Navigation")]
+ public virtual ICollection StickerPacks { get; set; } = new List();
+
+ [ForeignKey("UserId")]
+ [InverseProperty("Stickers")]
+ public virtual User? User { get; set; }
+
+ [ForeignKey("StickersId")]
+ [InverseProperty("Stickers")]
+ public virtual ICollection Messages { get; set; } = new List();
+}
diff --git a/extra/admin-api/Spacebar.Db/Models/StickerPack.cs b/extra/admin-api/Spacebar.Db/Models/StickerPack.cs
new file mode 100644
index 00000000..6ed142ba
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Models/StickerPack.cs
@@ -0,0 +1,37 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace Spacebar.Db.Models;
+
+[Table("sticker_packs")]
+public partial class StickerPack
+{
+ [Key]
+ [Column("id", TypeName = "character varying")]
+ public string Id { get; set; } = null!;
+
+ [Column("name", TypeName = "character varying")]
+ public string Name { get; set; } = null!;
+
+ [Column("description", TypeName = "character varying")]
+ public string? Description { get; set; }
+
+ [Column("banner_asset_id", TypeName = "character varying")]
+ public string? BannerAssetId { get; set; }
+
+ [Column("cover_sticker_id", TypeName = "character varying")]
+ public string? CoverStickerId { get; set; }
+
+ [Column("coverStickerId", TypeName = "character varying")]
+ public string? CoverStickerId1 { get; set; }
+
+ [ForeignKey("CoverStickerId1")]
+ [InverseProperty("StickerPacks")]
+ public virtual Sticker? CoverStickerId1Navigation { get; set; }
+
+ [InverseProperty("Pack")]
+ public virtual ICollection Stickers { get; set; } = new List();
+}
diff --git a/extra/admin-api/Spacebar.Db/Models/Team.cs b/extra/admin-api/Spacebar.Db/Models/Team.cs
new file mode 100644
index 00000000..9c1f20dd
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Models/Team.cs
@@ -0,0 +1,34 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace Spacebar.Db.Models;
+
+[Table("teams")]
+public partial class Team
+{
+ [Key]
+ [Column("id", TypeName = "character varying")]
+ public string Id { get; set; } = null!;
+
+ [Column("icon", TypeName = "character varying")]
+ public string? Icon { get; set; }
+
+ [Column("name", TypeName = "character varying")]
+ public string Name { get; set; } = null!;
+
+ [Column("owner_user_id", TypeName = "character varying")]
+ public string? OwnerUserId { get; set; }
+
+ [InverseProperty("Team")]
+ public virtual ICollection Applications { get; set; } = new List();
+
+ [ForeignKey("OwnerUserId")]
+ [InverseProperty("Teams")]
+ public virtual User? OwnerUser { get; set; }
+
+ [InverseProperty("Team")]
+ public virtual ICollection TeamMembers { get; set; } = new List();
+}
diff --git a/extra/admin-api/Spacebar.Db/Models/TeamMember.cs b/extra/admin-api/Spacebar.Db/Models/TeamMember.cs
new file mode 100644
index 00000000..ec1cf646
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Models/TeamMember.cs
@@ -0,0 +1,38 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace Spacebar.Db.Models;
+
+[Table("team_members")]
+public partial class TeamMember
+{
+ [Key]
+ [Column("id", TypeName = "character varying")]
+ public string Id { get; set; } = null!;
+
+ [Column("membership_state")]
+ public int MembershipState { get; set; }
+
+ [Column("permissions")]
+ public string Permissions { get; set; } = null!;
+
+ [Column("role", TypeName = "character varying")]
+ public string Role { get; set; } = null!;
+
+ [Column("team_id", TypeName = "character varying")]
+ public string? TeamId { get; set; }
+
+ [Column("user_id", TypeName = "character varying")]
+ public string? UserId { get; set; }
+
+ [ForeignKey("TeamId")]
+ [InverseProperty("TeamMembers")]
+ public virtual Team? Team { get; set; }
+
+ [ForeignKey("UserId")]
+ [InverseProperty("TeamMembers")]
+ public virtual User? User { get; set; }
+}
diff --git a/extra/admin-api/Spacebar.Db/Models/Template.cs b/extra/admin-api/Spacebar.Db/Models/Template.cs
new file mode 100644
index 00000000..0eb0675f
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Models/Template.cs
@@ -0,0 +1,54 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace Spacebar.Db.Models;
+
+[Table("templates")]
+[Index("Code", Name = "UQ_be38737bf339baf63b1daeffb55", IsUnique = true)]
+public partial class Template
+{
+ [Key]
+ [Column("id", TypeName = "character varying")]
+ public string Id { get; set; } = null!;
+
+ [Column("code", TypeName = "character varying")]
+ public string Code { get; set; } = null!;
+
+ [Column("name", TypeName = "character varying")]
+ public string Name { get; set; } = null!;
+
+ [Column("description", TypeName = "character varying")]
+ public string? Description { get; set; }
+
+ [Column("usage_count")]
+ public int? UsageCount { get; set; }
+
+ [Column("creator_id", TypeName = "character varying")]
+ public string? CreatorId { get; set; }
+
+ [Column("created_at", TypeName = "timestamp without time zone")]
+ public DateTime CreatedAt { get; set; }
+
+ [Column("updated_at", TypeName = "timestamp without time zone")]
+ public DateTime UpdatedAt { get; set; }
+
+ [Column("source_guild_id", TypeName = "character varying")]
+ public string? SourceGuildId { get; set; }
+
+ [Column("serialized_source_guild")]
+ public string SerializedSourceGuild { get; set; } = null!;
+
+ [ForeignKey("CreatorId")]
+ [InverseProperty("Templates")]
+ public virtual User? Creator { get; set; }
+
+ [InverseProperty("Template")]
+ public virtual ICollection Guilds { get; set; } = new List();
+
+ [ForeignKey("SourceGuildId")]
+ [InverseProperty("Templates")]
+ public virtual Guild? SourceGuild { get; set; }
+}
diff --git a/extra/admin-api/Spacebar.Db/Models/User.cs b/extra/admin-api/Spacebar.Db/Models/User.cs
new file mode 100644
index 00000000..ca140dbc
--- /dev/null
+++ b/extra/admin-api/Spacebar.Db/Models/User.cs
@@ -0,0 +1,222 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using Microsoft.EntityFrameworkCore;
+
+namespace Spacebar.Db.Models;
+
+[Table("users")]
+[Index("SettingsIndex", Name = "REL_0c14beb78d8c5ccba66072adbc", IsUnique = true)]
+public partial class User
+{
+ [Key]
+ [Column("id", TypeName = "character varying")]
+ public string Id { get; set; } = null!;
+
+ [Column("username", TypeName = "character varying")]
+ public string Username { get; set; } = null!;
+
+ [Column("discriminator", TypeName = "character varying")]
+ public string Discriminator { get; set; } = null!;
+
+ [Column("avatar", TypeName = "character varying")]
+ public string? Avatar { get; set; }
+
+ [Column("accent_color")]
+ public int? AccentColor { get; set; }
+
+ [Column("banner", TypeName = "character varying")]
+ public string? Banner { get; set; }
+
+ [Column("theme_colors")]
+ public string? ThemeColors { get; set; }
+
+ [Column("pronouns", TypeName = "character varying")]
+ public string? Pronouns { get; set; }
+
+ [Column("phone", TypeName = "character varying")]
+ public string? Phone { get; set; }
+
+ [Column("desktop")]
+ public bool Desktop { get; set; }
+
+ [Column("mobile")]
+ public bool Mobile { get; set; }
+
+ [Column("premium")]
+ public bool Premium { get; set; }
+
+ [Column("premium_type")]
+ public int PremiumType { get; set; }
+
+ [Column("bot")]
+ public bool Bot { get; set; }
+
+ [Column("bio", TypeName = "character varying")]
+ public string Bio { get; set; } = null!;
+
+ [Column("system")]
+ public bool System { get; set; }
+
+ [Column("nsfw_allowed")]
+ public bool NsfwAllowed { get; set; }
+
+ [Column("mfa_enabled")]
+ public bool MfaEnabled { get; set; }
+
+ [Column("webauthn_enabled")]
+ public bool WebauthnEnabled { get; set; }
+
+ [Column("totp_secret", TypeName = "character varying")]
+ public string? TotpSecret { get; set; }
+
+ [Column("totp_last_ticket", TypeName = "character varying")]
+ public string? TotpLastTicket { get; set; }
+
+ [Column("created_at", TypeName = "timestamp without time zone")]
+ public DateTime CreatedAt { get; set; }
+
+ [Column("premium_since", TypeName = "timestamp without time zone")]
+ public DateTime? PremiumSince { get; set; }
+
+ [Column("verified")]
+ public bool Verified { get; set; }
+
+ [Column("disabled")]
+ public bool Disabled { get; set; }
+
+ [Column("deleted")]
+ public bool Deleted { get; set; }
+
+ [Column("email", TypeName = "character varying")]
+ public string? Email { get; set; }
+
+ [Column("flags", TypeName = "character varying")]
+ public string Flags { get; set; }
+
+ [Column("public_flags")]
+ public int PublicFlags { get; set; }
+
+ [Column("purchased_flags")]
+ public int PurchasedFlags { get; set; }
+
+ [Column("premium_usage_flags")]
+ public int PremiumUsageFlags { get; set; }
+
+ [Column("rights")]
+ public long Rights { get; set; }
+
+ [Column("data")]
+ public string Data { get; set; } = null!;
+
+ [Column("fingerprints")]
+ public string Fingerprints { get; set; } = null!;
+
+ [Column("extended_settings")]
+ public string ExtendedSettings { get; set; } = null!;
+
+ [Column("badge_ids")]
+ public string? BadgeIds { get; set; }
+
+ [Column("settingsIndex")]
+ public int? SettingsIndex { get; set; }
+
+ [InverseProperty("BotUser")]
+ public virtual Application? ApplicationBotUser { get; set; }
+
+ [InverseProperty("Owner")]
+ public virtual ICollection ApplicationOwners { get; set; } = new List();
+
+ [InverseProperty("Target")]
+ public virtual ICollection AuditLogTargets { get; set; } = new List();
+
+ [InverseProperty("User")]
+ public virtual ICollection AuditLogUsers { get; set; } = new List();
+
+ [InverseProperty("User")]
+ public virtual ICollection BackupCodes { get; set; } = new List();
+
+ [InverseProperty("Executor")]
+ public virtual ICollection BanExecutors { get; set; } = new List();
+
+ [InverseProperty("User")]
+ public virtual ICollection BanUsers { get; set; } = new List();
+
+ [InverseProperty("Owner")]
+ public virtual ICollection Channels { get; set; } = new List();
+
+ [InverseProperty("User")]
+ public virtual ICollection ConnectedAccounts { get; set; } = new List();
+
+ [InverseProperty("User")]
+ public virtual ICollection Emojis { get; set; } = new List();
+
+ [InverseProperty("Owner")]
+ public virtual ICollection Guilds { get; set; } = new List();
+
+ [InverseProperty("Inviter")]
+ public virtual ICollection InviteInviters { get; set; } = new List();
+
+ [InverseProperty("TargetUser")]
+ public virtual ICollection InviteTargetUsers { get; set; } = new List();
+
+ [InverseProperty("IdNavigation")]
+ public virtual ICollection Members { get; set; } = new List();
+
+ [InverseProperty("Author")]
+ public virtual ICollection MessageAuthors { get; set; } = new List();
+
+ [InverseProperty("Member")]
+ public virtual ICollection MessageMembers { get; set; } = new List();
+
+ [InverseProperty("Owner")]
+ public virtual ICollection NoteOwners { get; set; } = new List();
+
+ [InverseProperty("Target")]
+ public virtual ICollection NoteTargets { get; set; } = new List();
+
+ [InverseProperty("User")]
+ public virtual ICollection ReadStates { get; set; } = new List();
+
+ [InverseProperty("User")]
+ public virtual ICollection Recipients { get; set; } = new List();
+
+ [InverseProperty("From")]
+ public virtual ICollection RelationshipFroms { get; set; } = new List();
+
+ [InverseProperty("To")]
+ public virtual ICollection RelationshipTos { get; set; } = new List();
+
+ [InverseProperty("User")]
+ public virtual ICollection SecurityKeys { get; set; } = new List();
+
+ [InverseProperty("User")]
+ public virtual ICollection Sessions { get; set; } = new List();
+
+ [ForeignKey("SettingsIndex")]
+ [InverseProperty("User")]
+ public virtual UserSetting? SettingsIndexNavigation { get; set; }
+
+ [InverseProperty("User")]
+ public virtual ICollection Stickers { get; set; } = new List();
+
+ [InverseProperty("User")]
+ public virtual ICollection TeamMembers { get; set; } = new List();
+
+ [InverseProperty("OwnerUser")]
+ public virtual ICollection Teams { get; set; } = new List();
+
+ [InverseProperty("Creator")]
+ public virtual ICollection Templates { get; set; } = new List();
+
+ [InverseProperty("User")]
+ public virtual ICollection VoiceStates { get; set; } = new List();
+
+ [InverseProperty("User")]
+ public virtual ICollection Webhooks { get; set; } = new List();
+
+ [ForeignKey("UsersId")]
+ [InverseProperty("Users")]
+ public virtual ICollection