package settings import ( "context" "apps/backend/internal/middleware" "apps/backend/internal/module/member/domain" "apps/backend/internal/svc" "apps/backend/internal/types" "github.com/zeromicro/go-zero/core/logx" ) type GetAiLogic struct { logx.Logger ctx context.Context svcCtx *svc.ServiceContext } func NewGetAiLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetAiLogic { return &GetAiLogic{Logger: logx.WithContext(ctx), ctx: ctx, svcCtx: svcCtx} } func (l *GetAiLogic) GetAi() (resp *types.AiSettingsData, err error) { uid, _ := middleware.UIDFrom(l.ctx) st, err := l.svcCtx.Members.GetSettings(l.ctx, uid) if err != nil { return nil, err } if st == nil { st = domain.DefaultSettings(uid) } return &types.AiSettingsData{ Provider: st.Provider, Model: st.Model, ResearchProvider: st.Provider, ResearchModel: st.Model, ApiKeyConfigured: st.APIKeyConfigured, ResearchApiKeyConfigured: st.ResearchAPIKeyConfigured || st.APIKeyConfigured, PlatformKeyAvailable: l.svcCtx.Config.Platform.AIKey != "", }, nil }