package domain

import "time"

// QuestionID is a strongly-typed identifier for questions.
type QuestionID string

// QuestionType represents different types of questions.
type QuestionType string

const (
	QuestionTypeText        QuestionType = "text"
	QuestionTypeChoice      QuestionType = "choice"      // Single choice
	QuestionTypeMultiChoice QuestionType = "multichoice" // Multiple choices
	QuestionTypeYesNo       QuestionType = "yesno"
)

// Question represents a structured question in the architect flow.
type Question struct {
	ID             QuestionID
	ConversationID ConversationID
	ProjectID      string
	Type           QuestionType
	Text           string
	Choices        []string          // For choice/multichoice types
	Answer         *string           // User's text answer
	AnswerChoices  []string          // For multichoice type
	Metadata       map[string]string // Additional context
	CreatedAt      time.Time
	AnsweredAt     *time.Time
}
