Official Wishlist Module Overview
Description
The Official Wishlist Module represents the production-ready wishlist system that enables users to create, manage, and analyze wishlist groups with full subscription integration and advanced analytics capabilities. Unlike the temporary wishlist system, this module enforces subscription quotas, integrates with the TV Python API for advanced analysis, and provides real-time monitoring and business intelligence features.
This module serves as the core production system where users can:
- Create official wishlist groups with subscription validation
- Manage products, categories, and search queries within wishlist contexts
- Generate datasets for advanced analysis via TV Python API integration
- Monitor analysis progress with real-time status updates
- Access comprehensive ranking analysis and AI-powered viewpoint insights
- Collaborate with team members through group-based access control
Activity Diagram
---
config:
theme: base
layout: dagre
flowchart:
curve: linear
htmlLabels: true
themeVariables:
edgeLabelBackground: "transparent"
---
flowchart TB
%% Main components
UserRequest[User Request]
AuthService(AuthService)
SubscriptionService(SubscriptionService)
WishlistService(WishlistService)
TVPythonAPI((TV Python API))
PusherService((Pusher Service))
Database[(Database)]
subgraph Controllers
WishlistController[WishlistController]
AnalysisController[AnalysisController]
end
subgraph Services
DatasetService(DatasetService)
RankingService(RankingService)
ViewpointService(ViewpointService)
end
subgraph ExternalAPIs
StripeAPI((Stripe API))
OpenAIAPI((OpenAI API))
end
UserRequest --- Step1[
<div style='text-align: center'>
<span style='display: inline-block; background-color: #6699cc !important; color:white; width: 28px; height: 28px; line-height: 28px; border-radius: 50%; font-weight: bold'>1</span>
<p style='margin-top: 8px'>Authentication & Subscription Validation</p>
</div>
]
Step1 --> AuthService
Step1 --> SubscriptionService
SubscriptionService -.-> StripeAPI
AuthService --- Step2[
<div style='text-align: center'>
<span style='display: inline-block; background-color: #6699cc !important; color:white; width: 28px; height: 28px; line-height: 28px; border-radius: 50%; font-weight: bold'>2</span>
<p style='margin-top: 8px'>Wishlist Creation & Data Management</p>
</div>
]
Step2 --> WishlistController
WishlistController --> WishlistService
WishlistService --> Database
WishlistService --- Step3[
<div style='text-align: center'>
<span style='display: inline-block; background-color: #6699cc !important; color:white; width: 28px; height: 28px; line-height: 28px; border-radius: 50%; font-weight: bold'>3</span>
<p style='margin-top: 8px'>Dataset Preparation & TV Python Integration</p>
</div>
]
Step3 --> AnalysisController
AnalysisController --> DatasetService
DatasetService --> TVPythonAPI
DatasetService --- Step4[
<div style='text-align: center'>
<span style='display: inline-block; background-color: #6699cc !important; color:white; width: 28px; height: 28px; line-height: 28px; border-radius: 50%; font-weight: bold'>4</span>
<p style='margin-top: 8px'>Real-time Monitoring & Status Updates</p>
</div>
]
Step4 --> PusherService
TVPythonAPI -.-> DatasetService
PusherService --- Step5[
<div style='text-align: center'>
<span style='display: inline-block; background-color: #6699cc !important; color:white; width: 28px; height: 28px; line-height: 28px; border-radius: 50%; font-weight: bold'>5</span>
<p style='margin-top: 8px'>Analysis Results & Business Intelligence</p>
</div>
]
Step5 --> RankingService
Step5 --> ViewpointService
RankingService --> Database
ViewpointService -.-> OpenAIAPI
RankingService --- Step6[
<div style='text-align: center'>
<span style='display: inline-block; background-color: #6699cc !important; color:white; width: 28px; height: 28px; line-height: 28px; border-radius: 50%; font-weight: bold'>6</span>
<p style='margin-top: 8px'>Collaboration & Result Sharing</p>
</div>
]
Step6 --> WishlistController
ViewpointService --> WishlistController
%% Styling
style UserRequest fill:#e6f3ff,stroke:#0066cc,stroke-width:2px
style Database fill:#ffe6cc,stroke:#ff9900,stroke-width:2px
style TVPythonAPI fill:#fcd9d9,stroke:#cc3333,stroke-width:2px
style PusherService fill:#fcd9d9,stroke:#cc3333,stroke-width:2px
style StripeAPI fill:#fcd9d9,stroke:#cc3333,stroke-width:2px
style OpenAIAPI fill:#fcd9d9,stroke:#cc3333,stroke-width:2px
style Controllers fill:#e6f3ff
style Services fill:#f0f8e6
style ExternalAPIs fill:#fcd9d9
style Step1 fill:transparent,stroke:transparent,stroke-width:1px
style Step2 fill:transparent,stroke:transparent,stroke-width:1px
style Step3 fill:transparent,stroke:transparent,stroke-width:1px
style Step4 fill:transparent,stroke:transparent,stroke-width:1px
style Step5 fill:transparent,stroke:transparent,stroke-width:1px
style Step6 fill:transparent,stroke:transparent,stroke-width:1px
Detail Dataflow Dependency
Step-by-Step Process
Step 1: Subscription Validation & Wishlist Creation
- Description: Validates user subscription status and creates official wishlist group with quota enforcement
- Action: Authenticate user, validate subscription, check quota limits, create wishlist group with unique slug
- Input: User credentials, wishlist name, group membership, subscription details
- Output: Official wishlist group with active status and subscription binding
- Dependencies: User authentication, group membership validation, subscription service
- External Services: Subscription billing system (Stripe API), group management service
Step 2: Data Population & Management
- Description: Populates wishlist with products, categories, and search queries with comprehensive validation
- Action: Process product URLs, category selections, search queries with proper validation rules
- Input: Product URLs, category IDs, search keywords, mall-specific data
- Output: Structured wishlist data with product, category, and search query relationships
- Dependencies: Summary table services, data validation services, mall configuration
- External Services: Product validation APIs, category mapping services
Step 3: Dataset Preparation & TV Python Integration
- Description: Prepares dataset for advanced analysis and initiates TV Python API integration
- Action: Aggregate wishlist data, format for TV Python API, create dataset history record, initiate analysis
- Input: Complete wishlist data, analysis parameters, user preferences
- Output: Dataset creation request with tracking ID and initial status
- Dependencies: Dataset history service, TV Python API client, analysis configuration
- External Services: TV Python API, dataset storage service, analysis queue management
Step 4: Real-time Monitoring & Status Tracking
- Description: Monitors analysis progress with real-time updates and status notifications
- Action: Poll TV Python API status, update dataset history, send Pusher notifications, handle errors
- Input: Dataset tracking ID, analysis status updates, error notifications
- Output: Real-time status updates, progress notifications, completion alerts
- Dependencies: Dataset history service, notification service, error handling
- External Services: TV Python API status endpoints, Pusher real-time service, monitoring systems
Step 5: Analysis Results & Business Intelligence
- Description: Processes analysis results for category rankings and search query performance
- Action: Retrieve analysis results, process ranking data, apply subscription-based filtering
- Input: TV Python analysis results, ranking data, subscription date constraints
- Output: Category rankings, search query rankings, filtered by subscription permissions
- Dependencies: Ranking analysis services, subscription validation, analyzer database integration
- External Services: Analyzer database, ranking calculation services
Step 6: Viewpoint Analysis & AI Insights
- Description: Processes viewpoint data with hierarchical structure for business intelligence
- Action: Retrieve category viewpoints, load detailed viewpoint relationships, process specific viewpoints
- Input: Category data, viewpoint hierarchies, specific viewpoint configurations
- Output: Organized viewpoint data with category, detail, and specific viewpoint relationships
- Dependencies: Viewpoint repositories, hierarchical data processing
- External Services: None (internal data processing)
Step 7: Collaboration & Result Sharing
- Description: Enables team collaboration and result sharing with access control and export capabilities
- Action: Manage group access, share analysis results, control permissions by subscription level
- Input: Group membership data, sharing preferences, access permissions
- Output: Shared analysis results with appropriate access controls
- Dependencies: Group management service, access control services, subscription validation
- External Services: File export systems, sharing platforms
Database Related Tables & Fields
Database: gb_console, gb_analyzer
erDiagram
wishlist_to_groups {
bigint id PK
bigint group_id FK "Group association"
bigint subscription_id FK "Subscription binding"
bigint created_by FK "User reference"
string name "Name of the wishlist"
string slug "Slug of the wishlist"
integer status "0: Inactive, 1: Active, 3: Canceled"
}
wishlist_products {
bigint id PK
bigint wishlist_to_group_id FK "Wishlist association"
bigint summary_wishlist_product_id FK "Summary product reference"
integer status "0: Inactive, 1: Active"
}
wishlist_categories {
bigint id PK
bigint wishlist_to_group_id FK "Wishlist association"
bigint summary_wishlist_category_id FK "Summary category reference"
integer status "0: Inactive, 1: Active"
}
wishlist_search_queries {
bigint id PK
bigint wishlist_to_group_id FK "Wishlist association"
bigint summary_wishlist_search_query_id FK "Summary search query reference"
integer status "0: Inactive, 1: Active"
}
wishlist_dataset_histories {
bigint id PK
bigint wishlist_to_group_id FK "Wishlist association"
string dataset_id "TV Python dataset identifier"
string slug "Unique slug identifier"
integer status "Dataset processing status"
}
wl_cat_vps {
bigint id PK
bigint wishlist_to_group_id FK "Wishlist association"
string category_id "The id of the category in the mall"
bigint mall_id FK "The id of the mall"
integer status "0: Inactive, 1: Active"
}
wl_cat_vp_details {
bigint id PK
bigint wl_cat_vp_id FK "Category viewpoint association"
string viewpoint "The viewpoint of the category"
text content "The content of the viewpoint"
integer status "0: Inactive, 1: Active"
}
wl_spec_vps {
bigint id PK
bigint wishlist_to_group_id FK "Wishlist association"
string name "The name of the specific viewpoint"
text description "The description of the specific viewpoint"
integer status "0: Inactive, 1: Active"
}
"gb_analyzer.category_rankings" {
bigint id PK
string mall_category_id "Category ID in the mall"
string mall_category_name "Category name in the mall"
integer mall_id "Mall identifier"
}
"gb_analyzer.product_category_rankings" {
bigint id PK
bigint category_ranking_id FK "Category ranking reference"
integer ranking "Position in rankings"
string mall_product_id "Product ID in the mall"
string product_name "Name of the product"
double price "Product price"
string shop_name "Name of the shop"
}
groups {
bigint id PK
string name "Group name"
}
subscriptions {
bigint id PK
string name "Subscription name"
}
wishlist_to_groups ||--o{ wishlist_products : "has many"
wishlist_to_groups ||--o{ wishlist_categories : "has many"
wishlist_to_groups ||--o{ wishlist_search_queries : "has many"
wishlist_to_groups ||--o{ wishlist_dataset_histories : "has many"
wishlist_to_groups ||--o{ wl_cat_vps : "has many"
wishlist_to_groups ||--o{ wl_spec_vps : "has many"
wishlist_to_groups }|--|| groups : "belongs to"
wishlist_to_groups }|--|| subscriptions : "belongs to"
wl_cat_vps ||--o{ wl_cat_vp_details : "has many"
"gb_analyzer.category_rankings" ||--o{ "gb_analyzer.product_category_rankings" : "has many"
Expected Outcomes
Technical Outcomes
- Subscription-Integrated Wishlist System: Fully functional official wishlist management with quota enforcement and billing integration
- Advanced Analytics Integration: Comprehensive TV Python API integration for dataset creation and sophisticated analysis
- Real-time Status Monitoring: Live progress tracking with Pusher notifications for all analysis operations
- Comprehensive Data Management: Structured product, category, and search query management with optimized database relationships
- AI-Powered Viewpoint Analysis: Hierarchical viewpoint structure with category, detail, and specific viewpoint organization
- Subscription-Based Data Access: Date-constrained access to ranking data based on subscription level and permissions
- Scalable Architecture: Group-based collaboration with proper access control and subscription validation
Business Value
- Comprehensive Market Intelligence: Category and search query rankings with performance metrics and trend analysis
- Strategic Insights: AI-powered viewpoints with structured business intelligence for decision making
- Subscription Revenue Management: Direct billing integration with tiered access and usage tracking
- Team Collaboration: Multi-user access with group-based permissions and shared analysis results
- Data-Driven Decision Making: Comprehensive analytics for product, category, and search query performance
- Competitive Analysis: Market positioning insights through ranking analysis and viewpoint generation
- Streamlined Workflow: End-to-end process from wishlist creation to advanced analysis and reporting
Module List
| Name | Overview Link | Description |
|---|---|---|
| Wishlist Group Management | Wishlist Group Management | Core CRUD operations for official wishlist groups with subscription validation |
| Dataset Creation | Dataset Creation | TV Python API integration for advanced analysis and dataset management |
| Wishlist Product Management | Wishlist Product | Product management within wishlist context with summary integration |
| Wishlist Category Management | Wishlist Category | Category management with mall-specific processing and analysis |
| Wishlist Search Query Management | Wishlist Search Query | Search query management with keyword analysis and optimization |
| Ranking Analysis | Ranking Analysis | Category and search query ranking analysis with business insights |
| Viewpoint Analysis | Viewpoint Analysis | Production viewpoint analysis with DS Analyzer integration and read-only access for business intelligence |