- Add highly optimized Dockerfile with Nginx and PHP-FPM 8.4
- Add docker-compose.yml configured with Redis and MariaDB 10.11
- Implement entrypoint.sh and supervisord.conf for background workers
- Refactor legacy IMAP scripts into scheduled Artisan Commands
- Secure app by removing old routes with hardcoded basic auth credentials
- Configure email attachments to use Laravel Storage instead of insecure public/tmp
Replace SQLite-specific functions with database-agnostic expressions to support
MySQL, SQLite, PostgreSQL, and SQL Server across all Filament dashboard widgets.
- Fix strftime() date formatting in SubscriptionMetrics, RevenueMetrics, and TrialPerformance
- Fix CAST AS REAL syntax in ChurnAnalysis widget
- Add getDateFormatExpression() method for date function compatibility
- Add getCastExpression() method for CAST syntax compatibility
- Support MySQL/MariaDB, SQLite, PostgreSQL, and SQL Server drivers
- Maintain identical functionality across all database types
Fixes multiple SQLSTATE[42000] syntax errors when using MySQL/MariaDB databases.
- Add unified payment provider architecture with contract-based design
- Implement 6 payment providers: Stripe, Lemon Squeezy, Polar, Oxapay, Crypto, Activation Keys
- Create subscription management with lifecycle handling (create, cancel, pause, resume, update)
- Add coupon system with usage tracking and trial extensions
- Build Filament admin resources for payment providers, subscriptions, coupons, and trials
- Implement payment orchestration service with provider registry and configuration management
- Add comprehensive payment logging and webhook handling for all providers
- Create customer analytics dashboard with revenue, churn, and lifetime value metrics
- Add subscription migration service for provider switching
- Include extensive test coverage for all payment functionality