- .NET 8 LTS solution with 7 projects (domain/application/infrastructure/api/shared/pos.core/pos[WPF]) - Central package management (Directory.Packages.props), .editorconfig, global.json pin to 8.0.417 - PostgreSQL 14 dev DB via existing brew service; food_market database created - ASP.NET Identity + OpenIddict 5 (password + refresh token flows) with ephemeral dev keys - EF Core 8 + Npgsql; multi-tenant query filter via reflection over ITenantEntity - Initial migration: 13 tables (Identity + OpenIddict + organizations) - AuthorizationController implements /connect/token; seeders create demo org + admin - Protected /api/me endpoint returns current user + org claims - React 19 + Vite 8 + Tailwind v4 SPA with TanStack Query, React Router 7 - Login flow with dev-admin placeholder, bearer interceptor + refresh token fallback - docs/architecture.md, CLAUDE.md, README.md Verified end-to-end: health check, password grant issues JWT with org_id, web app builds successfully (310 kB gzipped). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
42 lines
1.3 KiB
INI
42 lines
1.3 KiB
INI
root = true
|
|
|
|
[*]
|
|
charset = utf-8
|
|
end_of_line = lf
|
|
indent_style = space
|
|
indent_size = 4
|
|
insert_final_newline = true
|
|
trim_trailing_whitespace = true
|
|
|
|
[*.{js,jsx,ts,tsx,json,yml,yaml,md,html,css,scss}]
|
|
indent_size = 2
|
|
|
|
[*.{csproj,props,targets,config,xml}]
|
|
indent_size = 2
|
|
|
|
[*.cs]
|
|
# C# formatting rules
|
|
csharp_new_line_before_open_brace = all
|
|
csharp_new_line_before_else = true
|
|
csharp_new_line_before_catch = true
|
|
csharp_new_line_before_finally = true
|
|
csharp_indent_case_contents = true
|
|
csharp_indent_switch_labels = true
|
|
csharp_using_directive_placement = outside_namespace
|
|
csharp_style_namespace_declarations = file_scoped:warning
|
|
csharp_style_var_for_built_in_types = true:suggestion
|
|
csharp_style_var_when_type_is_apparent = true:suggestion
|
|
csharp_prefer_braces = true:warning
|
|
|
|
# Naming
|
|
dotnet_naming_rule.interfaces_should_be_prefixed.severity = warning
|
|
dotnet_naming_rule.interfaces_should_be_prefixed.symbols = interfaces
|
|
dotnet_naming_rule.interfaces_should_be_prefixed.style = prefix_i
|
|
dotnet_naming_symbols.interfaces.applicable_kinds = interface
|
|
dotnet_naming_style.prefix_i.required_prefix = I
|
|
dotnet_naming_style.prefix_i.capitalization = pascal_case
|
|
|
|
# Analyzers
|
|
dotnet_diagnostic.CA1707.severity = none # Underscores in identifiers
|
|
dotnet_diagnostic.CA1822.severity = none # Mark members as static
|