package user

import "time"

// CreateUserInput is the input for creating a user (IDO - Internal Data Object)
type CreateUserInput struct {
	Email                 string
	FirstName             string
	LastName              string
	PasswordHash          string // Optional: Hashed password (if creating user with password)
	PasswordHashAlgorithm string // Algorithm used for password hashing (e.g., "argon2id")
	Role                  int   // User role (numeric value)
	Timezone              string

	// Consent fields
	AgreeTermsOfService                            bool
	AgreePromotions                                bool
	AgreeToTrackingAcrossThirdPartyAppsAndServices bool

	// Optional: IP address for audit trail
	CreatedFromIPAddress string
}

// CreateUserOutput is the output after creating a user (IDO - Internal Data Object)
type CreateUserOutput struct {
	ID        string
	Email     string
	Name      string
	CreatedAt time.Time
}
