181 lines
		
	
	
		
			7.8 KiB
		
	
	
	
		
			Thrift
		
	
	
	
			
		
		
	
	
			181 lines
		
	
	
		
			7.8 KiB
		
	
	
	
		
			Thrift
		
	
	
	
include "marketplace_common.thrift"
 | 
						|
 | 
						|
namespace go marketplace.product_common
 | 
						|
 | 
						|
enum ProductEntityType {
 | 
						|
    Bot              = 1 ,
 | 
						|
    Plugin           = 2 ,
 | 
						|
    // Workflow = 3 ,
 | 
						|
    SocialScene      = 4,
 | 
						|
    Project          = 6,
 | 
						|
    WorkflowTemplate = 13, // History workflow, no more in the future (abandoned)
 | 
						|
    ImageflowTemplate = 15, // Historical image stream template, no more in the future (obsolete)
 | 
						|
    TemplateCommon      = 20, // Template universal identification, only used to bind template-related configurations, not bind products
 | 
						|
    BotTemplate         = 21, // Bot template
 | 
						|
    WorkflowTemplateV2  = 23, // workflow template
 | 
						|
    ImageflowTemplateV2 = 25, // Image stream template (this type has been offline and merged into workflow, but historical data will be preserved, and the front end will be treated as workflow display)
 | 
						|
    ProjectTemplate     = 26, // project template
 | 
						|
    CozeToken        = 50, // Coze token products, theoretically there will only be one
 | 
						|
    MsgCredit        = 55, // Subscribe to the traffic package of credit, theoretically there will only be one
 | 
						|
    SubsMsgCredit    = 60, // There is only one subscription product in theory
 | 
						|
    Common           = 99,
 | 
						|
    Topic = 101 // Special Topics (Compatible with previous designs)
 | 
						|
}
 | 
						|
 | 
						|
enum SortType {
 | 
						|
    Heat         = 1,
 | 
						|
    Newest       = 2,
 | 
						|
    FavoriteTime = 3, // collection time
 | 
						|
    Relative = 4, // Correlation, only for search scenarios
 | 
						|
}
 | 
						|
 | 
						|
enum ProductPublishMode {
 | 
						|
    OpenSource   = 1,
 | 
						|
    ClosedSource = 2,
 | 
						|
}
 | 
						|
 | 
						|
enum ProductListSource {
 | 
						|
    Recommend           = 1, // recommended list page
 | 
						|
    CustomizedRecommend = 2, // personalized recommendation
 | 
						|
}
 | 
						|
 | 
						|
enum PluginType {
 | 
						|
    CLoudPlugin           = 0 , // default
 | 
						|
    LocalPlugin           = 1 ,
 | 
						|
}
 | 
						|
 | 
						|
enum ProductPaidType {
 | 
						|
    Free = 0;
 | 
						|
    Paid = 1;
 | 
						|
}
 | 
						|
 | 
						|
struct CommercialSetting {
 | 
						|
    1: required ProductPaidType commercial_type (agw.key = "commercial_type", api.body= "commercial_type")
 | 
						|
}
 | 
						|
 | 
						|
enum ProductStatus {
 | 
						|
    NeverListed = 0, // NeverListed
 | 
						|
    Listed      = 1,
 | 
						|
    Unlisted    = 2,
 | 
						|
    Banned      = 3,
 | 
						|
}
 | 
						|
 | 
						|
struct UserLabel {
 | 
						|
    1: string label_id   (agw.key = "label_id", api.body= "label_id")  ,
 | 
						|
    2: string label_name (agw.key = "label_name", api.body= "label_name"),
 | 
						|
    3: string icon_uri   (agw.key = "icon_uri", api.body= "icon_uri")  ,
 | 
						|
    4: string icon_url   (agw.key = "icon_url", api.body= "icon_url")  ,
 | 
						|
    5: string jump_link  (agw.key = "jump_link", api.body= "jump_link") ,
 | 
						|
}
 | 
						|
 | 
						|
struct UserInfo {
 | 
						|
    1:          i64                           user_id     (agw.js_conv="str",api.js_conv="true",agw.cli_conv="str", agw.key = "user_id", api.body= "user_id"),
 | 
						|
    2:          string                        user_name   (agw.key = "user_name", api.body= "user_name")                                      ,
 | 
						|
    3:          string                        name       (agw.key = "name", api.body= "name")                                           ,
 | 
						|
    4:          string                        avatar_url  (agw.key = "avatar_url", api.body= "avatar_url")                                     ,
 | 
						|
    5: optional UserLabel                     user_label  (agw.key = "user_label", api.body= "user_label")                                     ,
 | 
						|
    6: optional marketplace_common.FollowType follow_type (agw.key = "follow_type", api.body= "follow_type")                                    ,
 | 
						|
}
 | 
						|
 | 
						|
struct ImageInfo {
 | 
						|
    1: string uri   (agw.key = "uri", api.body= "uri"),
 | 
						|
    2: string url   (agw.key = "url", api.body= "url"),
 | 
						|
}
 | 
						|
 | 
						|
enum ProductDraftStatus {
 | 
						|
    Default   = 0, // default
 | 
						|
    Pending   = 1, // Under review.
 | 
						|
    Approved  = 2, // approved
 | 
						|
    Rejected  = 3, // The review failed.
 | 
						|
    Abandoned = 4, // Abandoned
 | 
						|
}
 | 
						|
 | 
						|
typedef ProductDraftStatus AuditStatus
 | 
						|
 | 
						|
struct OpeningDialog {  // Bot OpeningDialog
 | 
						|
    1: string content (agw.key = "content", api.body= "content"),
 | 
						|
}
 | 
						|
 | 
						|
enum InputType {
 | 
						|
    String  = 1,
 | 
						|
    Integer = 2,
 | 
						|
    Boolean = 3,
 | 
						|
    Double  = 4,
 | 
						|
    List    = 5,
 | 
						|
    Object  = 6,
 | 
						|
}
 | 
						|
 | 
						|
enum PluginParamTypeFormat {
 | 
						|
    ImageUrl = 1,
 | 
						|
}
 | 
						|
 | 
						|
enum WorkflowNodeType {
 | 
						|
    Start       = 1 , // start
 | 
						|
    End         = 2 , // end
 | 
						|
    LLM         = 3 , // Large model
 | 
						|
    Api         = 4 , // plugin
 | 
						|
    Code        = 5 , // code
 | 
						|
    Dataset     = 6 , // Knowledge Base
 | 
						|
    If          = 8 , // selector
 | 
						|
    SubWorkflow = 9 , // Workflow
 | 
						|
    Variable    = 11, // variable
 | 
						|
    Database    = 12, // database
 | 
						|
    Message     = 13, // message
 | 
						|
}
 | 
						|
 | 
						|
enum SocialSceneRoleType {
 | 
						|
    Host       = 1
 | 
						|
	PresetBot  = 2
 | 
						|
	Custom     = 3
 | 
						|
}
 | 
						|
 | 
						|
enum UIPreviewType { // UI preview type, defining alignment UI Builder, currently used in Project
 | 
						|
    Web = 1,    // web page
 | 
						|
    Client = 2, // mobile end
 | 
						|
}
 | 
						|
 | 
						|
struct ChargeSKUExtra{
 | 
						|
    1: i64 Quantity    (agw.js_conv="str", api.js_conv="true", agw.cli_conv="str", agw.key = "quantity", api.body= "quantity"),
 | 
						|
    2: bool IsSelfDefine (agw.key = "is_self_define", api.body= "is_self_define")
 | 
						|
}
 | 
						|
 | 
						|
enum FavoriteListSource {
 | 
						|
    CreatedByMe = 1, // Created by users themselves
 | 
						|
}
 | 
						|
 | 
						|
struct FavoriteEntity {
 | 
						|
    1 :          i64                  EntityID           (agw.js_conv="str", agw.cli_conv="str", agw.key = "entity_id", api.body="entity_id", api.js_conv="true")  ,
 | 
						|
    2 :          ProductEntityType    EntityType         (agw.key = "entity_type", api.body="entity_type")                                        ,
 | 
						|
    4 :          string               Name               (agw.key = "name", api.body="name")                                               ,
 | 
						|
    5 :          string               IconURL            (agw.key = "icon_url", api.body="icon_url")                                           ,
 | 
						|
    6 :          string               Description        (agw.key = "description", api.body="description")                                        ,
 | 
						|
    7 :          SellerInfo           Seller             (agw.key = "seller", api.body="seller")                                             , // Abandoned, using UserInfo
 | 
						|
    8 :          i64                  SpaceID            (agw.js_conv="str",  agw.cli_conv="str", agw.key = "space_id", api.body="space_id", api.js_conv="true")   , // Use to jump to the bot edit page
 | 
						|
    9 :          bool                 HasSpacePermission (agw.key = "has_space_permission", api.body="has_space_permission")                               , // Does the user have permissions to the space where the entity is located?
 | 
						|
    10:          i64                  FavoriteAt         (agw.js_conv="str",  agw.cli_conv="str", agw.key = "favorite_at", api.body="favorite_at", api.js_conv="true"), // collection time
 | 
						|
 | 
						|
    11: optional FavoriteProductExtra ProductExtra       (agw.key = "product_extra", api.body="product_extra")                                      ,
 | 
						|
    12:          UserInfo             UserInfo           (agw.key = "user_info", api.body="user_info")                                          ,
 | 
						|
    13: optional FavoritePluginExtra  PluginExtra        (agw.key = "plugin_extra", api.body="plugin_extra")                                       ,
 | 
						|
}
 | 
						|
 | 
						|
struct SellerInfo {
 | 
						|
    1: i64    UserID    (agw.js_conv="str",  agw.cli_conv="str", agw.key = "user_id", api.body="user_id", api.js_conv="true"),
 | 
						|
    2: string UserName  (agw.key = "user_name", api.body="user_name")                                      ,
 | 
						|
    3: string AvatarURL (agw.key = "avatar_url", agw.key="avatar_url", api.body="avatar_url")               ,
 | 
						|
}
 | 
						|
 | 
						|
struct FavoriteProductExtra {
 | 
						|
    1: i64           ProductID     (agw.js_conv="str",  agw.cli_conv="str", agw.key = "product_id", api.body="product_id", api.js_conv="true"),
 | 
						|
    2: ProductStatus ProductStatus (agw.key="product_status", api.body="product_status")                                      ,
 | 
						|
}
 | 
						|
 | 
						|
struct FavoritePluginExtra {
 | 
						|
    1: list<PluginTool> Tools (agw.key="tools", api.body="tools"),
 | 
						|
}
 | 
						|
 | 
						|
struct PluginTool {
 | 
						|
    1: i64    ID (agw.js_conv="str",  agw.cli_conv="str", agw.key = "id", api.body="id", api.js_conv="true"),
 | 
						|
    2: string Name (agw.key="name", api.body="name"),
 | 
						|
    3: string Description (agw.key="description", api.body="description"),
 | 
						|
} |