feat: add SelectMenuBuilder, SelectMenuOptionBuilder, SelectMenuDefaultValueBuilder

This commit is contained in:
Siwoo Jeon 2025-05-19 19:29:32 +09:00
parent 8b62e9a252
commit 1545e23e32
Signed by: migan
GPG key ID: 036E9A8C5E8E48DA

View file

@ -123,3 +123,98 @@ func (b *Button) SetSKUID(skuID string) *Button {
b.SKUID = skuID
return b
}
// SelectMenuBuilder creates a new SelectMenu struct.
func SelectMenuBuilder(menuType SelectMenuType) *SelectMenu {
return &SelectMenu{MenuType: menuType}
}
// SetCustomID sets customID for SelectMenu.
func (s *SelectMenu) SetCustomID(customID string) *SelectMenu {
s.CustomID = customID
return s
}
// AddOptions adds options for SelectMenu.
// NOTE: It can be used in string SelectMenu.
func (s *SelectMenu) AddOptions(options ...SelectMenuOption) *SelectMenu {
s.Options = append(s.Options, options...)
return s
}
// SetPlaceholder sets placeholder for SelectMenu.
func (s *SelectMenu) SetPlaceholder(placeholder string) *SelectMenu {
s.Placeholder = placeholder
return s
}
// SetMinValues sets min values for SelectMenu.
func (s *SelectMenu) SetMinValues(minValues int) *SelectMenu {
s.MinValues = &minValues
return s
}
// SetMaxValues sets max values for SelectMenu.
func (s *SelectMenu) SetMaxValues(maxValues int) *SelectMenu {
s.MaxValues = maxValues
return s
}
// SetDisabled sets disabled for SelectMenu.
func (s *SelectMenu) SetDisabled(disabled bool) *SelectMenu {
s.Disabled = disabled
return s
}
// AddDefaultValues adds default values for SelectMenu.
// NOTE: It can not be used in string SelectMenu.
func (s *SelectMenu) AddDefaultValues(defaultValues ...SelectMenuDefaultValue) *SelectMenu {
s.DefaultValues = append(s.DefaultValues, defaultValues...)
return s
}
// SelectMenuOptionBuilder creates a new SelectMenuOption struct.
func SelectMenuOptionBuilder() *SelectMenuOption {
return &SelectMenuOption{}
}
// SetLabel sets label for SelectMenuOption.
func (o *SelectMenuOption) SetLabel(label string) *SelectMenuOption {
o.Label = label
return o
}
// SetValue sets value for SelectMenuOption.
func (o *SelectMenuOption) SetValue(value string) *SelectMenuOption {
o.Value = value
return o
}
// SetDescription sets description for SelectMenuOption.
func (o *SelectMenuOption) SetDescription(desc string) *SelectMenuOption {
o.Description = desc
return o
}
// SetEmoji sets emoji for SelectMenuOption.
func (o *SelectMenuOption) SetEmoji(emoji ComponentEmoji) *SelectMenuOption {
o.Emoji = &emoji
return o
}
// SetDefault sets default for SelectMenuOption.
func (o *SelectMenuOption) SetDefault(optionDefault bool) *SelectMenuOption {
o.Default = optionDefault
return o
}
// SelectMenuDefaultValueBuilder creates a new SelectMenuDefaultValue struct.
func SelectMenuDefaultValueBuilder(valueType SelectMenuDefaultValueType) *SelectMenuDefaultValue {
return &SelectMenuDefaultValue{Type: valueType}
}
// SetID sets ID for SelectMenuDefaultValue.
func (d *SelectMenuDefaultValue) SetID(id string) *SelectMenuDefaultValue {
d.ID = id
return d
}