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