thread-master/backend/generate/api/member.api

188 lines
6.9 KiB
Plaintext
Raw Normal View History

2026-06-26 08:37:04 +00:00
syntax = "v1"
type (
MemberMeData {
TenantID string `json:"tenant_id"`
UID string `json:"uid"`
Email string `json:"email"`
2026-07-07 14:02:41 +00:00
EmailVerified bool `json:"email_verified"`
2026-06-26 08:37:04 +00:00
DisplayName string `json:"display_name,omitempty"`
Avatar string `json:"avatar,omitempty"`
Phone string `json:"phone,omitempty"`
Language string `json:"language,omitempty"`
Currency string `json:"currency,omitempty"`
Status string `json:"status"`
Origin string `json:"origin"`
Roles []string `json:"roles,omitempty"`
BusinessEmail string `json:"business_email,omitempty"`
BusinessEmailVerified bool `json:"business_email_verified"`
BusinessPhone string `json:"business_phone,omitempty"`
BusinessPhoneVerified bool `json:"business_phone_verified"`
CreateAt int64 `json:"create_at"`
UpdateAt int64 `json:"update_at"`
}
UpdateMemberMeReq {
DisplayName string `json:"display_name,optional"`
Avatar string `json:"avatar,optional"`
Language string `json:"language,optional"`
Currency string `json:"currency,optional"`
Phone string `json:"phone,optional"`
}
2026-07-07 14:02:41 +00:00
ListMembersReq {
Page int64 `form:"page,optional"`
PageSize int64 `form:"pageSize,optional"`
}
ListMembersData {
Pagination PaginationData `json:"pagination"`
List []MemberMeData `json:"list"`
}
MemberPath {
UID string `path:"uid" validate:"required"`
}
UpdateMemberRolesReq {
UID string `path:"uid" validate:"required"`
Roles []string `json:"roles" validate:"required"`
}
UpdateMemberPasswordReq {
UID string `path:"uid" validate:"required"`
Password string `json:"password" validate:"required,min=8,max=128"`
}
UpdateMemberProfileReq {
UID string `path:"uid" validate:"required"`
DisplayName *string `json:"display_name,optional"`
Avatar *string `json:"avatar,optional"`
Language *string `json:"language,optional"`
Currency *string `json:"currency,optional"`
Phone *string `json:"phone,optional"`
Status *string `json:"status,optional"`
BusinessEmail *string `json:"business_email,optional"`
BusinessEmailVerified *bool `json:"business_email_verified,optional"`
BusinessPhone *string `json:"business_phone,optional"`
BusinessPhoneVerified *bool `json:"business_phone_verified,optional"`
EmailVerified *bool `json:"email_verified,optional"`
}
UploadAvatarData {
Avatar string `json:"avatar"`
}
2026-06-26 08:37:04 +00:00
MemberPlacementSettingsData {
WebSearchProvider string `json:"web_search_provider"` // brave | exa
BraveAPIKey string `json:"brave_api_key,omitempty"`
BraveAPIKeyConfigured bool `json:"brave_api_key_configured"`
ExaAPIKey string `json:"exa_api_key,omitempty"`
ExaAPIKeyConfigured bool `json:"exa_api_key_configured"`
BraveCountry string `json:"brave_country"`
BraveSearchLang string `json:"brave_search_lang"`
ExaUserLocation string `json:"exa_user_location"`
ExpandStrategy string `json:"expand_strategy"` // brave | llm | hybrid
DevModeEnabled bool `json:"dev_mode_enabled"`
2026-06-26 08:37:04 +00:00
}
2026-07-07 14:02:41 +00:00
MemberAiSettingsData {
Provider string `json:"provider"`
Model string `json:"model"`
ResearchProvider string `json:"research_provider,omitempty"`
ResearchModel string `json:"research_model,omitempty"`
ApiKeys map[string]string `json:"api_keys,omitempty"`
ApiKeysConfigured map[string]interface{} `json:"api_keys_configured"`
}
UpdateMemberAiSettingsReq {
Provider *string `json:"provider,optional"`
Model *string `json:"model,optional"`
ResearchProvider *string `json:"research_provider,optional"`
ResearchModel *string `json:"research_model,optional"`
ApiKeys map[string]string `json:"api_keys,optional"`
}
MemberAiProviderModelsReq {
Provider string `path:"provider" validate:"required,oneof=opencode-go xai"`
ApiKey string `json:"api_key,optional"`
}
MemberAiProviderModelsData {
ID string `json:"id"`
Label string `json:"label"`
Models []string `json:"models"`
Streams bool `json:"streams"`
Error string `json:"error,omitempty"`
}
2026-06-26 08:37:04 +00:00
UpdateMemberPlacementSettingsReq {
WebSearchProvider *string `json:"web_search_provider,optional"`
BraveAPIKey *string `json:"brave_api_key,optional"`
ExaAPIKey *string `json:"exa_api_key,optional"`
BraveCountry *string `json:"brave_country,optional"`
BraveSearchLang *string `json:"brave_search_lang,optional"`
ExaUserLocation *string `json:"exa_user_location,optional"`
ExpandStrategy *string `json:"expand_strategy,optional"`
DevModeEnabled *bool `json:"dev_mode_enabled,optional"`
2026-06-26 08:37:04 +00:00
}
2026-06-28 08:28:42 +00:00
MemberCapabilitiesData {
DiscoverReady bool `json:"discover_ready"`
AiReady bool `json:"ai_ready"`
PublishReady bool `json:"publish_ready"`
DiscoverHint string `json:"discover_hint,omitempty"`
AiHint string `json:"ai_hint,omitempty"`
PublishHint string `json:"publish_hint,omitempty"`
ActiveThreadsAccountId string `json:"active_threads_account_id,omitempty"`
}
2026-06-26 08:37:04 +00:00
)
@server(
group: member
prefix: /api/v1/members
middleware: AuthJWT
tags: "Member"
summary: "Current member profile endpoints. Requires Bearer JWT or dev headers."
)
service gateway {
2026-07-07 14:02:41 +00:00
@handler listMembers
get / (ListMembersReq) returns (ListMembersData)
2026-06-26 08:37:04 +00:00
@handler getMemberMe
get /me returns (MemberMeData)
@handler updateMemberMe
patch /me (UpdateMemberMeReq) returns (MemberMeData)
2026-07-07 14:02:41 +00:00
@handler uploadMemberAvatar
post /me/avatar returns (UploadAvatarData)
2026-06-26 08:37:04 +00:00
@handler getMemberPlacementSettings
get /me/placement-settings returns (MemberPlacementSettingsData)
@handler updateMemberPlacementSettings
patch /me/placement-settings (UpdateMemberPlacementSettingsReq) returns (MemberPlacementSettingsData)
2026-06-28 08:28:42 +00:00
2026-07-07 14:02:41 +00:00
@handler getMemberAiSettings
get /me/ai-settings returns (MemberAiSettingsData)
@handler updateMemberAiSettings
put /me/ai-settings (UpdateMemberAiSettingsReq) returns (MemberAiSettingsData)
@handler listMemberAiProviderModels
post /me/ai-settings/providers/:provider/models (MemberAiProviderModelsReq) returns (MemberAiProviderModelsData)
2026-06-28 08:28:42 +00:00
@handler getMemberCapabilities
get /me/capabilities returns (MemberCapabilitiesData)
2026-07-07 14:02:41 +00:00
@handler updateMemberRoles
patch /:uid/roles (UpdateMemberRolesReq) returns (MemberMeData)
@handler updateMemberPassword
patch /:uid/password (UpdateMemberPasswordReq) returns (MemberMeData)
@handler updateMemberProfile
patch /:uid/profile (UpdateMemberProfileReq) returns (MemberMeData)
2026-06-26 08:37:04 +00:00
}