daren/apps/brands/brands.md
2025-05-26 11:01:01 +08:00

17 KiB
Raw Blame History

品牌模块API文档

概述

品牌模块是负责管理品牌、产品、活动以及品牌聊天会话的系统。该模块提供了一系列RESTful API接口用于创建、查询、更新和删除品牌相关的资源。

通用响应格式

所有API响应都遵循以下统一的JSON格式

{
  "code": 200,      // 状态码200表示成功其他值表示错误
  "message": "成功", // 响应消息
  "data": {}        // 响应数据可能是对象、数组或null
}

认证方式

所有接口都需要使用自定义Token认证请在HTTP请求头中添加以下字段

Authorization: Token your_token_here

1. 品牌管理 (Brands)

1.1 获取品牌列表

  • URL: /brands/
  • 方法: GET
  • 描述: 获取所有品牌的列表
  • 请求参数: 无
  • 响应数据:
    {
      "code": 200,
      "message": "成功",
      "data": [
        {
          "id": "uuid字符串",
          "name": "品牌名称",
          "description": "品牌描述",
          "logo_url": "品牌Logo链接",
          "category": "品牌分类",
          "source": "来源",
          "collab_count": 0,
          "creators_count": 0,
          "campaign_id": "活动ID",
          "total_gmv_achieved": "0.00",
          "total_views_achieved": "0.00",
          "shop_overall_rating": "0.0",
          "dataset_id_list": [],
          "created_at": "创建时间",
          "updated_at": "更新时间",
          "is_active": true
        }
      ]
    }
    

1.2 创建品牌

  • URL: /brands/
  • 方法: POST
  • 描述: 创建一个新的品牌
  • 请求参数:
    {
      "name": "品牌名称",             // 必填,唯一
      "description": "品牌描述",      // 可选
      "logo_url": "品牌Logo链接",     // 可选
      "category": "品牌分类",         // 可选
      "source": "来源",              // 可选
      "collab_count": 0,            // 可选默认0
      "creators_count": 0,          // 可选默认0
      "campaign_id": "活动ID",       // 可选
      "total_gmv_achieved": "0.00", // 可选默认0
      "total_views_achieved": "0.00", // 可选默认0
      "shop_overall_rating": "0.0", // 可选默认0
      "is_active": true             // 可选默认true
    }
    
  • 响应数据: 返回创建的品牌信息

1.3 获取品牌详情

  • URL: /brands/{id}/
  • 方法: GET
  • 描述: 获取指定ID的品牌详细信息包括关联的产品和活动
  • 请求参数: 无
  • 响应数据:
    {
      "code": 200,
      "message": "成功",
      "data": {
        "id": "uuid字符串",
        "name": "品牌名称",
        "description": "品牌描述",
        "logo_url": "品牌Logo链接",
        "category": "品牌分类",
        "source": "来源",
        "collab_count": 0,
        "creators_count": 0,
        "campaign_id": "活动ID",
        "total_gmv_achieved": "0.00",
        "total_views_achieved": "0.00",
        "shop_overall_rating": "0.0",
        "dataset_id_list": [],
        "products": [],
        "campaigns": [],
        "created_at": "创建时间",
        "updated_at": "更新时间",
        "is_active": true
      }
    }
    

1.4 更新品牌

  • URL: /brands/{id}/
  • 方法: PUT/PATCH
  • 描述: 更新指定ID的品牌信息
  • 请求参数: 同创建品牌
  • 响应数据: 返回更新后的品牌信息

1.5 删除品牌

  • URL: /brands/{id}/
  • 方法: DELETE
  • 描述: 删除指定ID的品牌
  • 请求参数: 无
  • 响应数据:
    {
      "code": 200,
      "message": "删除成功",
      "data": null
    }
    

1.6 获取品牌产品列表

  • URL: /brands/{id}/products/
  • 方法: GET
  • 描述: 获取指定品牌下的所有产品
  • 请求参数: 无
  • 响应数据: 返回产品列表

1.7 获取品牌活动列表

  • URL: /brands/{id}/campaigns/
  • 方法: GET
  • 描述: 获取指定品牌下的所有活动
  • 请求参数: 无
  • 响应数据: 返回活动列表

1.8 获取品牌知识库ID列表

  • URL: /brands/{id}/dataset_ids/
  • 方法: GET
  • 描述: 获取品牌的所有知识库ID
  • 请求参数: 无
  • 响应数据:
    {
      "code": 200,
      "message": "成功",
      "data": {
        "dataset_id_list": []
      }
    }
    

2. 产品管理 (Products)

2.1 获取产品列表

  • URL: /products/
  • 方法: GET
  • 描述: 获取所有产品的列表
  • 请求参数: 无
  • 响应数据:
    {
      "code": 200,
      "message": "成功",
      "data": [
        {
          "id": "uuid字符串",
          "brand": "品牌ID",
          "brand_name": "品牌名称",
          "name": "产品名称",
          "description": "产品描述",
          "image_url": "产品图片链接",
          "pid": "产品ID",
          "commission_rate": "0.00",
          "open_collab": "0.00",
          "available_samples": 0,
          "sales_price_min": "0.00",
          "sales_price_max": "0.00",
          "stock": 0,
          "items_sold": 0,
          "product_rating": "0.0",
          "reviews_count": 0,
          "collab_creators": 0,
          "tiktok_shop": false,
          "dataset_id": "知识库ID",
          "external_id": "外部ID",
          "created_at": "创建时间",
          "updated_at": "更新时间",
          "is_active": true
        }
      ]
    }
    

2.2 创建产品

  • URL: /products/
  • 方法: POST
  • 描述: 创建一个新的产品会自动更新关联品牌的dataset_id_list
  • 请求参数:
    {
      "brand": "品牌ID",           // 必填
      "name": "产品名称",          // 必填
      "description": "产品描述",   // 可选
      "image_url": "产品图片链接", // 可选
      "pid": "产品ID",            // 可选
      "commission_rate": "0.00",  // 可选
      "open_collab": "0.00",      // 可选
      "available_samples": 0,     // 可选
      "sales_price_min": "0.00",  // 可选
      "sales_price_max": "0.00",  // 可选
      "stock": 0,                 // 可选
      "items_sold": 0,            // 可选
      "product_rating": "0.0",    // 可选
      "reviews_count": 0,         // 可选
      "collab_creators": 0,       // 可选
      "tiktok_shop": false,       // 可选
      "dataset_id": "知识库ID",    // 必填
      "external_id": "外部ID",     // 可选
      "is_active": true           // 可选
    }
    
  • 响应数据: 返回创建的产品信息

2.3 获取产品详情

  • URL: /products/{id}/
  • 方法: GET
  • 描述: 获取指定ID的产品详细信息
  • 请求参数: 无
  • 响应数据: 返回产品详情

2.4 更新产品

  • URL: /products/{id}/
  • 方法: PUT/PATCH
  • 描述: 更新指定ID的产品信息会自动更新关联品牌的dataset_id_list
  • 请求参数: 同创建产品
  • 响应数据: 返回更新后的产品信息

2.5 删除产品

  • URL: /products/{id}/
  • 方法: DELETE
  • 描述: 软删除指定ID的产品并从品牌的dataset_id_list中移除对应的ID
  • 请求参数: 无
  • 响应数据:
    {
      "code": 200,
      "message": "删除成功",
      "data": null
    }
    

3. 活动管理 (Campaigns)

3.1 获取活动列表

  • URL: /campaigns/
  • 方法: GET
  • 描述: 获取所有活动的列表
  • 请求参数: 无
  • 响应数据:
    {
      "code": 200,
      "message": "成功",
      "data": [
        {
          "id": "uuid字符串",
          "brand": "品牌ID",
          "brand_name": "品牌名称",
          "name": "活动名称",
          "description": "活动描述",
          "image_url": "活动图片链接",
          "service": "服务类型",
          "creator_type": "创作者类型",
          "creator_level": "创作者等级",
          "creator_category": "创作者分类",
          "creators_count": 0,
          "gmv": "GMV范围",
          "followers": "粉丝数范围",
          "views": "浏览量范围",
          "budget": "预算范围",
          "link_product": ["产品ID1", "产品ID2"],
          "link_product_details": [产品详情对象数组],
          "start_date": "开始日期",
          "end_date": "结束日期",
          "dataset_id": "知识库ID",
          "external_id": "外部ID",
          "created_at": "创建时间",
          "updated_at": "更新时间",
          "is_active": true
        }
      ]
    }
    

3.2 创建活动

  • URL: /campaigns/
  • 方法: POST
  • 描述: 创建一个新的活动会自动更新关联品牌的dataset_id_list
  • 请求参数:
    {
      "brand": "品牌ID",               // 必填
      "name": "活动名称",              // 必填
      "description": "活动描述",       // 可选
      "image_url": "活动图片链接",     // 可选
      "service": "服务类型",           // 可选
      "creator_type": "创作者类型",    // 可选
      "creator_level": "创作者等级",   // 可选
      "creator_category": "创作者分类", // 可选
      "creators_count": 0,            // 可选
      "gmv": "GMV范围",               // 可选
      "followers": "粉丝数范围",       // 可选
      "views": "浏览量范围",           // 可选
      "budget": "预算范围",            // 可选
      "link_product": ["产品ID1"],     // 可选
      "start_date": "开始日期",        // 可选
      "end_date": "结束日期",          // 可选
      "dataset_id": "知识库ID",        // 必填
      "external_id": "外部ID",         // 可选
      "is_active": true               // 可选
    }
    
  • 响应数据: 返回创建的活动信息

3.3 获取活动详情

  • URL: /campaigns/{id}/
  • 方法: GET
  • 描述: 获取指定ID的活动详细信息
  • 请求参数: 无
  • 响应数据: 返回活动详情

3.4 更新活动

  • URL: /campaigns/{id}/
  • 方法: PUT/PATCH
  • 描述: 更新指定ID的活动信息会自动更新关联品牌的dataset_id_list
  • 请求参数: 同创建活动
  • 响应数据: 返回更新后的活动信息

3.5 删除活动

  • URL: /campaigns/{id}/
  • 方法: DELETE
  • 描述: 软删除指定ID的活动并从品牌的dataset_id_list中移除对应的ID
  • 请求参数: 无
  • 响应数据:
    {
      "code": 200,
      "message": "删除成功",
      "data": null
    }
    

3.6 获取Token信息

  • URL: /campaigns/token-info/
  • 方法: GET
  • 描述: 获取当前用户的token信息和WebSocket URL示例
  • 请求参数: 无
  • 响应数据:
    {
      "code": 200,
      "message": "成功",
      "data": {
        "user_id": 1,
        "email": "user@example.com",
        "token": "token字符串",
        "token_expired_at": "过期时间",
        "websocket_examples": {
          "活动状态WebSocket": "ws://example.com/ws/campaigns/1/status/?token=token字符串",
          "活动产品状态WebSocket": "ws://example.com/ws/campaigns/1/products/123/status/?token=token字符串"
        }
      }
    }
    

3.7 添加产品到活动

  • URL: /campaigns/{id}/add_product/
  • 方法: POST
  • 描述: 将产品添加到活动中
  • 请求参数:
    {
      "product_id": "产品ID"  // 必填
    }
    
  • 响应数据:
    {
      "code": 200,
      "message": "产品添加成功",
      "data": null
    }
    

3.8 从活动中移除产品

  • URL: /campaigns/{id}/remove_product/
  • 方法: POST
  • 描述: 从活动中移除产品
  • 请求参数:
    {
      "product_id": "产品ID"  // 必填
    }
    
  • 响应数据:
    {
      "code": 200,
      "message": "产品移除成功",
      "data": null
    }
    

3.9 获取活动达人列表

  • URL: /campaigns/{id}/creator_list/
  • 方法: GET
  • 描述: 获取活动关联的达人列表,并启动状态轮询
  • 请求参数: 无
  • 响应数据:
    {
      "code": 200,
      "message": "成功",
      "data": {
        "campaign": {
          "name": "活动名称",
          "description": "活动描述",
          "image_url": "活动图片链接",
          "service": "服务类型",
          "creator_type": "创作者类型",
          "creator_level": "创作者等级",
          "creator_category": "创作者分类",
          "creators_count": 0,
          "gmv": "GMV范围",
          "followers": "粉丝数范围",
          "views": "浏览量范围",
          "budget": "预算范围",
          "start_date": "开始日期",
          "end_date": "结束日期",
          "status": "状态"
        },
        "creators": [
          {
            "name": "达人名称",
            "category": "达人分类",
            "followers": "粉丝数",
            "GMV Generated": "GMV",
            "Views Generated": "观看量",
            "Pricing": "价格",
            "Status": "状态"
          }
        ]
      }
    }
    

3.10 更新达人状态

  • URL: /campaigns/{id}/update_creator_status/
  • 方法: POST
  • 描述: 手动更新达人状态
  • 请求参数:
    {
      "creator_id": "达人ID",  // 必填
      "product_id": "产品ID"   // 可选
    }
    
  • 响应数据: 返回更新后的达人列表

3.11 获取活动产品达人列表

  • URL: /campaigns/{id}/product_creators/
  • 方法: GET
  • 描述: 根据活动ID和产品ID获取达人列表并启动状态轮询
  • 请求参数:
    • product_id: 产品ID (可选)
  • 响应数据:
    {
      "code": 200,
      "message": "成功",
      "data": {
        "campaign_id": "活动ID",
        "product_id": "产品ID",
        "product_name": "产品名称",
        "creators": [
          {
            "creator_name": "达人名称",
            "category": "达人分类",
            "followers": "粉丝数",
            "gmv_generated": "GMV",
            "views_generated": "观看量",
            "pricing": "价格",
            "status": "状态"
          }
        ]
      }
    }
    

3.12 停止状态轮询

  • URL: /campaigns/stop-polling/
  • 方法: POST
  • 描述: 停止指定活动或所有活动的状态轮询
  • 请求参数:
    {
      "campaign_id": "活动ID"  // 可选,不提供则停止所有轮询
    }
    
  • 响应数据:
    {
      "code": 200,
      "message": "已停止活动轮询",
      "data": null
    }
    

3.13 获取活动轮询列表

  • URL: /campaigns/active-pollings/
  • 方法: GET
  • 描述: 获取当前正在运行的所有轮询任务信息
  • 请求参数: 无
  • 响应数据: 返回活动轮询列表

3.14 获取WebSocket连接URL

  • URL: /campaigns/{id}/websocket-url/
  • 方法: GET
  • 描述: 获取带认证的WebSocket连接URL
  • 请求参数:
    • product_id: 产品ID (可选)
  • 响应数据:
    {
      "code": 200,
      "message": "成功",
      "data": {
        "websocket_url": "ws://example.com/ws/campaigns/1/status/?token=token字符串"
      }
    }
    

4. 品牌聊天会话管理 (Chat Sessions)

4.1 获取聊天会话列表

  • URL: /chat-sessions/
  • 方法: GET
  • 描述: 获取所有品牌聊天会话的列表
  • 请求参数: 无
  • 响应数据:
    {
      "code": 200,
      "message": "成功",
      "data": [
        {
          "id": "uuid字符串",
          "brand": "品牌ID",
          "brand_name": "品牌名称",
          "session_id": "会话ID",
          "title": "会话标题",
          "dataset_id_list": [],
          "created_at": "创建时间",
          "updated_at": "更新时间",
          "is_active": true
        }
      ]
    }
    

4.2 创建聊天会话

  • URL: /chat-sessions/
  • 方法: POST
  • 描述: 创建一个新的品牌聊天会话如果未提供dataset_id_list则使用品牌的dataset_id_list
  • 请求参数:
    {
      "brand": "品牌ID",             // 必填
      "session_id": "会话ID",        // 必填,唯一
      "title": "会话标题",           // 可选,默认"新对话"
      "dataset_id_list": [],         // 可选默认为品牌的dataset_id_list
      "is_active": true              // 可选默认true
    }
    
  • 响应数据: 返回创建的聊天会话信息

4.3 获取聊天会话详情

  • URL: /chat-sessions/{id}/
  • 方法: GET
  • 描述: 获取指定ID的聊天会话详细信息
  • 请求参数: 无
  • 响应数据: 返回聊天会话详情

4.4 更新聊天会话

  • URL: /chat-sessions/{id}/
  • 方法: PUT/PATCH
  • 描述: 更新指定ID的聊天会话信息
  • 请求参数: 同创建聊天会话
  • 响应数据: 返回更新后的聊天会话信息

4.5 删除聊天会话

  • URL: /chat-sessions/{id}/
  • 方法: DELETE
  • 描述: 删除指定ID的聊天会话
  • 请求参数: 无
  • 响应数据:
    {
      "code": 200,
      "message": "删除成功",
      "data": null
    }
    

5. WebSocket接口

brands模块提供了WebSocket接口用于实时获取活动和产品状态更新。

5.1 活动状态WebSocket

  • URL: ws://domain/ws/campaigns/{campaign_id}/status/?token={token}
  • 描述: 接收指定活动的状态更新

5.2 活动产品状态WebSocket

  • URL: ws://domain/ws/campaigns/{campaign_id}/products/{product_id}/status/?token={token}
  • 描述: 接收指定活动和产品组合的状态更新