feat: Add Stripe payment integration and subscription management

- Add Stripe.net SDK for payment processing
- Implement StripeService with checkout sessions, customer portal, webhooks
- Implement SubscriptionService for quota management
- Add quota enforcement to CVCheckService
- Create Pricing, Billing, Settings pages
- Add checkout success/cancel pages
- Update Check and Dashboard with usage indicators
- Add ResetMonthlyUsageJob for billing cycle resets
- Add database migration for subscription fields

Plan tiers: Free (3 checks), Professional £49/mo (30), Enterprise £199/mo (unlimited)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-21 12:03:24 +00:00
parent 6f384f8d09
commit 28d7d41b25
27 changed files with 2427 additions and 1 deletions

View File

@@ -0,0 +1,16 @@
using TrueCV.Domain.Enums;
namespace TrueCV.Application.DTOs;
public class SubscriptionInfoDto
{
public UserPlan Plan { get; set; }
public int ChecksUsedThisMonth { get; set; }
public int MonthlyLimit { get; set; }
public int ChecksRemaining { get; set; }
public bool IsUnlimited { get; set; }
public string? SubscriptionStatus { get; set; }
public DateTime? CurrentPeriodEnd { get; set; }
public bool HasActiveSubscription { get; set; }
public string DisplayPrice { get; set; } = string.Empty;
}