The previous thread pool implementation caused GIL contention under heavy CPU workloads. This change swaps concurrent.futures.ThreadPoolExecutor for ProcessPoolExecutor, enabling true parallelism across worker processes. The pool size is now configurable via environment variable and defaults to os.cpu_count(). Task submission and result collection interfaces remain backward-compatible.
The profiles table previously lacked an index on the user_id column, causing slow query performance when filtering by user. This change adds a B-tree index on user_id to optimize read operations in the user profile retrieval endpoint.
Implement a new monthly export statistics feature that records and aggregates export activity data. The change introduces a dedicated statistics collection mechanism within the analytics module, enabling tracking of export volumes, success rates, and user engagement metrics on a monthly basis. This enhancement provides administrators with granular visibility into export patterns and system utilization over time.
Implement a new statistics module that records and aggregates export operations, including timestamps, file sizes, and user identifiers. This enables monitoring of export frequency and data volume for compliance and analytics purposes.
- Implemented a new statistics module to record and monitor export operations
- Added tracking for export timestamps, file sizes, and user identifiers
- Updated export handler to log each completed export with relevant metadata
Implement a new content validation module that scans comment text for potentially harmful or inappropriate patterns before submission. The checker uses regex-based pattern matching to flag common spam, abuse, and prohibited content, returning a boolean result for downstream moderation handling.
The change introduces a new aggregation pipeline in the statistics module that groups export events by month, calculates total exports per user, and stores the results in a dedicated collection for efficient report generation.
Implement a new aggregation pipeline in the statistics module that groups export events by month and user ID, enabling generation of monthly activity reports for administrators. The change adds a `getMonthlyExportStats` function that queries the exports collection with a $match stage filtering on the last 12 months, followed by $group on year-month and userId, and a $sort stage for chronological ordering. This provides the backend support for the upcoming admin dashboard export statistics widget.
- Implemented a new statistics module to record export events
- Added database migration for export_logs table with user_id and timestamp
- Updated export handler to increment counter on successful completion
Implement a new statistics module that records export operations per month,
including total revenue, item count, and average order value. The module
aggregates data from the orders and shipments tables, grouping results by
calendar month for reporting purposes.
The export statistics module now supports quarterly data aggregation and regional filtering parameters. The `ExportStats` class has been extended with new methods `getQuarterlyBreakdown()` and `filterByRegion()`. The database schema migration adds a `region` column to the `export_stats` table. The API endpoint `/api/export-stats` now accepts optional `quarter` and `region` query parameters.
- Implemented a new statistics module to record and monitor user export activities
- Added database schema changes to store export timestamps and file sizes
- Updated export controller to log each export event with relevant metadata
- Created API endpoint for retrieving aggregated export statistics