package operator

import "github.com/tidbcloud/AgentTeam/desktop/internal/profile"

type fileSkillOperator struct{}

func (f *fileSkillOperator) Get(id string) (profile.Skill, bool, error) {
	s, ok := profile.Default().Skills().Get(id)
	return s, ok, nil
}

func (f *fileSkillOperator) All() ([]profile.Skill, error) {
	return profile.Default().Skills().All(), nil
}

func (f *fileSkillOperator) Add(s profile.Skill) (profile.Skill, error) {
	if err := profile.Default().Skills().Add(s); err != nil {
		return profile.Skill{}, err
	}
	result, _ := profile.Default().Skills().Get(s.ID)
	return result, nil
}

func (f *fileSkillOperator) Update(s profile.Skill) (profile.Skill, error) {
	if err := profile.Default().Skills().Update(s); err != nil {
		return profile.Skill{}, err
	}
	result, _ := profile.Default().Skills().Get(s.ID)
	return result, nil
}

func (f *fileSkillOperator) Delete(id string) error {
	return profile.Default().Skills().Delete(id)
}

func (f *fileSkillOperator) ImportFromFile(filePath string, meta *profile.SkillMeta, force bool) (profile.Skill, bool, error) {
	return profile.Default().Skills().ImportFromFile(filePath, meta, force)
}

func (f *fileSkillOperator) ImportFromURL(rawURL string, meta *profile.SkillMeta, force bool) (profile.Skill, bool, error) {
	return profile.Default().Skills().ImportFromURL(rawURL, meta, force)
}

func (f *fileSkillOperator) ImportAutoFromFile(filePath string, meta *profile.SkillMeta, force bool) (*profile.AutoImportResult, error) {
	return profile.Default().Skills().ImportAutoFromFile(filePath, meta, force)
}

func (f *fileSkillOperator) ImportAutoFromURL(rawURL string, meta *profile.SkillMeta, force bool) (*profile.AutoImportResult, error) {
	return profile.Default().Skills().ImportAutoFromURL(rawURL, meta, force)
}
