Yimaru-BackEnd/internal/ports/profile_field_option.go
Yared Yemane a5acd00637 Add admin-managed field options API for configurable dropdowns.
Store options in field_options with public /field-options and admin CRUD; validate learner profile values on update.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-22 09:21:36 -07:00

18 lines
972 B
Go

package ports
import (
"Yimaru-Backend/internal/domain"
"context"
)
type ProfileFieldOptionStore interface {
CreateProfileFieldOption(ctx context.Context, input domain.CreateProfileFieldOptionInput) (domain.ProfileFieldOption, error)
UpdateProfileFieldOption(ctx context.Context, id int64, input domain.UpdateProfileFieldOptionInput) (domain.ProfileFieldOption, error)
GetProfileFieldOptionByID(ctx context.Context, id int64, includeInactive bool) (domain.ProfileFieldOption, error)
ListProfileFieldOptions(ctx context.Context, fieldKey *string, status *string, limit, offset int32) ([]domain.ProfileFieldOption, int64, error)
ListActiveProfileFieldOptions(ctx context.Context, fieldKey *string) ([]domain.ProfileFieldOption, error)
IsActiveProfileFieldOption(ctx context.Context, fieldKey, code string) (bool, error)
ListDistinctFieldKeys(ctx context.Context, activeOnly bool) ([]string, error)
DeleteProfileFieldOption(ctx context.Context, id int64) error
}