template-monorepo/internal/model/member/domain/usecase/lifecycle.go

24 lines
796 B
Go

package usecase
import "context"
// LifecycleUseCase performs single-step member status transitions.
type LifecycleUseCase interface {
CreateUnverified(ctx context.Context, req *CreatePlatformMemberRequest) (*MemberDTO, error)
Activate(ctx context.Context, tenantID, uid string) error
Suspend(ctx context.Context, tenantID, uid, reason string) error
Reactivate(ctx context.Context, tenantID, uid string) error
SoftDelete(ctx context.Context, tenantID, uid string) error
AbortPending(ctx context.Context, tenantID, uid string) error
}
// CreatePlatformMemberRequest creates an unverified platform-native member.
type CreatePlatformMemberRequest struct {
TenantID string
Email string
PasswordHash string
DisplayName string
Language string
ZitadelUserID string
}