package request

// CreateCharacterRequest 创建角色卡请求
type CreateCharacterRequest struct {
	Name                    string                 `json:"name" binding:"required,max=100"`
	Avatar                  string                 `json:"avatar"`
	Creator                 string                 `json:"creator" binding:"max=100"`
	Version                 string                 `json:"version" binding:"max=50"`
	Description             string                 `json:"description"`
	Personality             string                 `json:"personality"`
	Scenario                string                 `json:"scenario"`
	FirstMes                string                 `json:"firstMes"`
	MesExample              string                 `json:"mesExample"`
	CreatorNotes            string                 `json:"creatorNotes"`
	SystemPrompt            string                 `json:"systemPrompt"`
	PostHistoryInstructions string                 `json:"postHistoryInstructions"`
	Tags                    []string               `json:"tags"`
	AlternateGreetings      []string               `json:"alternateGreetings"`
	CharacterBook           map[string]interface{} `json:"characterBook"`
	Extensions              map[string]interface{} `json:"extensions"`
	IsPublic                bool                   `json:"isPublic"`
}

// UpdateCharacterRequest 更新角色卡请求
type UpdateCharacterRequest struct {
	Name                    string                 `json:"name" binding:"max=100"`
	Avatar                  string                 `json:"avatar"`
	Creator                 string                 `json:"creator" binding:"max=100"`
	Version                 string                 `json:"version" binding:"max=50"`
	Description             string                 `json:"description"`
	Personality             string                 `json:"personality"`
	Scenario                string                 `json:"scenario"`
	FirstMes                string                 `json:"firstMes"`
	MesExample              string                 `json:"mesExample"`
	CreatorNotes            string                 `json:"creatorNotes"`
	SystemPrompt            string                 `json:"systemPrompt"`
	PostHistoryInstructions string                 `json:"postHistoryInstructions"`
	Tags                    []string               `json:"tags"`
	AlternateGreetings      []string               `json:"alternateGreetings"`
	CharacterBook           map[string]interface{} `json:"characterBook"`
	Extensions              map[string]interface{} `json:"extensions"`
	IsPublic                bool                   `json:"isPublic"`
}

// GetCharacterListRequest 获取角色卡列表请求
type GetCharacterListRequest struct {
	Page     int    `form:"page" binding:"min=1"`
	PageSize int    `form:"pageSize" binding:"min=1,max=100"`
	Keyword  string `form:"keyword"`
	Tag      string `form:"tag"`
	IsPublic *bool  `form:"isPublic"`
}
