Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions Core/Resgrid.Config/PaymentProviderConfig.cs
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,12 @@ public static class PaymentProviderConfig
// precedent and live here.
public static string PaddleAdpAddon = "pri_01m11vm50c17z0rxcgy4fppf80";
public static string PaddleAdpAddonTest = "";

// Readiness Pro: EUR 195/month, Paddle product pro_01m20xwmzpnkxzp7mm7nwwxp7p.
// Stripe USD 150/month is seeded on PlanAddons by M0190. Test prices must be
// configured separately; a missing sandbox price must never fall back to production.
public static string PaddleReadinessProAddon = "pri_01m20xy5x54j0sp4mcydcm4q6m";
public static string PaddleReadinessProAddonTest = "";

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

kody code-review Kody Rules high

Mutable configuration constant in Core/Resgrid.Config/PaymentProviderConfig.cs uses public static string PaddleReadinessProAddonTest = ""; for a fixed literal, which permits accidental mutation and obscures immutability. Use const for this value and the same pattern at Core/Resgrid.Model/WorkflowTemplateVariableCatalog.cs:392-392, Core/Resgrid.Config/ReadinessProConfig.cs:6-6, Core/Resgrid.Config/ReadinessProConfig.cs:7-7, Core/Resgrid.Config/PaymentProviderConfig.cs:49-49, Tests/Resgrid.Tests/Services/ReadinessAccessServiceTests.cs:17-17, Core/Resgrid.Model/Checklists/ChecklistPermissionCatalog.cs:7-7, Providers/Resgrid.Providers.MigrationsPg/Migrations/M0191_AddChecklistWorkflowPg.cs:8-8, Tests/Resgrid.Tests/Services/ChecklistWorkflowTests.cs:35-35, Tests/Resgrid.Tests/Services/ReadinessApiTests.cs:18-18, Tests/Resgrid.Tests/Services/ReadinessApiTests.cs:19-19, Tests/Resgrid.Tests/Services/ReadinessApiTests.cs:20-20, Tests/Resgrid.Tests/Services/ChecklistWorkflowTests.cs:197-197, Tests/Resgrid.Tests/Services/ReadinessAccessServiceTests.cs:20-20, Tests/Resgrid.Tests/Services/ReadinessAccessServiceTests.cs:18-18, Tests/Resgrid.Tests/Services/ReadinessAccessServiceTests.cs:24-24, Tests/Resgrid.Tests/Services/ReadinessAccessServiceTests.cs:23-23, Web/Resgrid.Web/Areas/User/Views/Checklists/Edit.cshtml:4-4, Tests/Resgrid.Tests/Services/ReadinessAccessServiceTests.cs:21-21, Tests/Resgrid.Tests/Services/ReadinessAccessServiceTests.cs:22-22, and Tests/Resgrid.Tests/Services/ReadinessAccessServiceTests.cs:19-19.

Kody rule violation: Use `readonly` or `const` for Immutable Data

public const string PaddleReadinessProAddonTest = "";
Prompt for LLM

File Core/Resgrid.Config/PaymentProviderConfig.cs:

Line 50:

Mutable configuration constant in `Core/Resgrid.Config/PaymentProviderConfig.cs` uses `public static string PaddleReadinessProAddonTest = "";` for a fixed literal, which permits accidental mutation and obscures immutability. Use `const` for this value and the same pattern at `Core/Resgrid.Model/WorkflowTemplateVariableCatalog.cs:392-392`, `Core/Resgrid.Config/ReadinessProConfig.cs:6-6`, `Core/Resgrid.Config/ReadinessProConfig.cs:7-7`, `Core/Resgrid.Config/PaymentProviderConfig.cs:49-49`, `Tests/Resgrid.Tests/Services/ReadinessAccessServiceTests.cs:17-17`, `Core/Resgrid.Model/Checklists/ChecklistPermissionCatalog.cs:7-7`, `Providers/Resgrid.Providers.MigrationsPg/Migrations/M0191_AddChecklistWorkflowPg.cs:8-8`, `Tests/Resgrid.Tests/Services/ChecklistWorkflowTests.cs:35-35`, `Tests/Resgrid.Tests/Services/ReadinessApiTests.cs:18-18`, `Tests/Resgrid.Tests/Services/ReadinessApiTests.cs:19-19`, `Tests/Resgrid.Tests/Services/ReadinessApiTests.cs:20-20`, `Tests/Resgrid.Tests/Services/ChecklistWorkflowTests.cs:197-197`, `Tests/Resgrid.Tests/Services/ReadinessAccessServiceTests.cs:20-20`, `Tests/Resgrid.Tests/Services/ReadinessAccessServiceTests.cs:18-18`, `Tests/Resgrid.Tests/Services/ReadinessAccessServiceTests.cs:24-24`, `Tests/Resgrid.Tests/Services/ReadinessAccessServiceTests.cs:23-23`, `Web/Resgrid.Web/Areas/User/Views/Checklists/Edit.cshtml:4-4`, `Tests/Resgrid.Tests/Services/ReadinessAccessServiceTests.cs:21-21`, `Tests/Resgrid.Tests/Services/ReadinessAccessServiceTests.cs:22-22`, and `Tests/Resgrid.Tests/Services/ReadinessAccessServiceTests.cs:19-19`.

Suggested Code:

public const string PaddleReadinessProAddonTest = "";

Talk to Kody by mentioning @kody

Was this suggestion helpful? React with 👍 or 👎 to help Kody learn from this interaction.

public static string PaddleProductionEnvironment = "production";
public static string PaddleTestEnvironment = "sandbox";
public static string PaddleProductionClientToken = "";
Expand Down Expand Up @@ -153,6 +159,11 @@ public static string GetPaddleAdpAddonPriceId()
return PaddleAdpAddon;
}

public static string GetPaddleReadinessProAddonPriceId()
{
return NormalizeConfigValue(IsTestMode ? PaddleReadinessProAddonTest : PaddleReadinessProAddon);
}

public static string GetPaddleEnvironment()
{
if (IsTestMode)
Expand Down
9 changes: 9 additions & 0 deletions Core/Resgrid.Config/ReadinessProConfig.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
namespace Resgrid.Config
{
/// <summary>Department-level monthly Readiness Pro prices. Provider checkout is implemented in P2-M1.</summary>
public static class ReadinessProConfig
{
public static decimal StripeMonthlyAmount = 150m;
public static decimal PaddleMonthlyAmount = 195m;
}
}
Loading
Loading