// Code generated by goctl. DO NOT EDIT.
// goctl 1.10.1

package types

type AiChatReq struct {
	Question string `json:"question"`
}

type BadgeConfigListReq struct {
	Current   int    `json:"current,optional"`
	PageSize  int    `json:"pageSize,optional"`
	Dimension string `json:"dimension,optional"`
}

type CarePlanReq struct {
	PlantId      string `json:"plantId,optional"`
	Name         string `json:"name,optional"`
	Icon         string `json:"icon,optional"`
	TargetAction string `json:"targetAction,optional"`
	Period       int    `json:"period,optional"`
}

type CareRecordReq struct {
	PlantId string `json:"plantId"`
	PlanId  string `json:"planId"`
	Action  string `json:"action"`
	Note    string `json:"note,optional"`
}

type CompleteTaskApiReq struct {
	TaskId string `json:"taskId"`
	Remark string `json:"remark,optional"`
}

type CreateBadgeConfigReq struct {
	Name           string `json:"name"`
	Description    string `json:"description,optional"`
	Dimension      string `json:"dimension"`
	GroupId        string `json:"groupId,optional"`
	Tier           int    `json:"tier,optional"`
	TargetAction   string `json:"targetAction"`
	Threshold      int64  `json:"threshold"`
	RewardSunlight int64  `json:"rewardSunlight,optional"`
	IconId         string `json:"iconId,optional"`
	Sort           int    `json:"sort,optional"`
}

type CreateExchangeItemReq struct {
	Name         string `json:"name"`
	Desc         string `json:"desc,optional"`
	Description  string `json:"description,optional"`
	ImgId        string `json:"imgId,optional"`
	ImageId      string `json:"imageId,optional"`
	Type         string `json:"type,optional"`
	Cost         int64  `json:"cost,optional"`
	CostSunlight int64  `json:"costSunlight,optional"`
	Stock        int    `json:"stock,optional"`
	LimitPerUser int    `json:"limitPerUser,optional"`
	Sort         int    `json:"sort,optional"`
	StartTime    string `json:"startTime,optional"`
	EndTime      string `json:"endTime,optional"`
}

type CreateLevelConfigReq struct {
	Level       int    `json:"level"`
	Title       string `json:"title"`
	MinSunlight int64  `json:"minSunlight"`
	Perks       string `json:"perks,optional"`
}

type CreatePlantReq struct {
	Name             string        `json:"name"`
	PlantTime        string        `json:"plantTime"`
	Status           int           `json:"status,optional"`
	Placement        string        `json:"placement,optional"`
	PotMaterial      string        `json:"potMaterial,optional"`
	PotSize          string        `json:"potSize,optional"`
	Sunlight         string        `json:"sunlight,optional"`
	PlantingMaterial string        `json:"plantingMaterial,optional"`
	ImgIds           []string      `json:"imgIds,optional"`
	OssIds           []string      `json:"ossIds,optional"`
	CarePlans        []CarePlanReq `json:"carePlans,optional"`
}

type CreatePostReq struct {
	Title    string   `json:"title"`
	Content  string   `json:"content"`
	Location string   `json:"location,optional"`
	ImgIds   []string `json:"imgIds,optional"`
	TopicId  string   `json:"topicId,optional"`
}

type CreateWikiReq struct {
	Name               string   `json:"name"`
	LatinName          string   `json:"latinName,optional"`
	Aliases            string   `json:"aliases,optional"`
	Genus              string   `json:"genus,optional"`
	Difficulty         int      `json:"difficulty,optional"`
	IsHot              int      `json:"isHot,optional"`
	GrowthHabit        string   `json:"growthHabit,optional"`
	LightIntensity     string   `json:"lightIntensity,optional"`
	LightType          string   `json:"lightType,optional"`
	OptimalTempPeriod  string   `json:"optimalTempPeriod,optional"`
	ClassId            string   `json:"classId,optional"`
	ClassIds           []string `json:"classIds,optional"`
	RelatedWikiIds     []string `json:"relatedWikiIds,optional"`
	OssIds             []string `json:"ossIds,optional"`
	DistributionArea   string   `json:"distributionArea,optional"`
	LifeCycle          string   `json:"lifeCycle,optional"`
	ReproductionMethod string   `json:"reproductionMethod,optional"`
	PestsDiseases      string   `json:"pestsDiseases,optional"`
	Stem               string   `json:"stem,optional"`
	Fruit              string   `json:"fruit,optional"`
	FoliageType        string   `json:"foliageType,optional"`
	FoliageColor       string   `json:"foliageColor,optional"`
	FoliageShape       string   `json:"foliageShape,optional"`
	Height             int      `json:"height,optional"`
	FloweringPeriod    string   `json:"floweringPeriod,optional"`
	FloweringColor     string   `json:"floweringColor,optional"`
	FloweringShape     string   `json:"floweringShape,optional"`
	FlowerDiameter     int      `json:"flowerDiameter,optional"`
}

type ExchangeItemListReq struct {
	Current  int    `json:"current,optional"`
	PageSize int    `json:"pageSize,optional"`
	Keyword  string `json:"keyword,optional"`
	Type     string `json:"type,optional"`
	Status   int    `json:"status,optional"`
}

type ExchangeOrderListReq struct {
	Current  int    `json:"current,optional"`
	PageSize int    `json:"pageSize,optional"`
	UserId   string `json:"userId,optional"`
	Status   int    `json:"status,optional"`
}

type ExchangeOrderReq struct {
	ItemId        string `json:"itemId"`
	Quantity      int    `json:"quantity,optional"`
	RecipientName string `json:"recipientName,optional"`
	Phone         string `json:"phone,optional"`
	Address       string `json:"address,optional"`
}

type GrowthRecordReq struct {
	PlantId string   `json:"plantId"`
	Name    string   `json:"name,optional"`
	Tag     string   `json:"tag,optional"`
	Desc    string   `json:"desc,optional"`
	Content string   `json:"content,optional"`
	ImgIds  []string `json:"imgIds,optional"`
	OssIds  []string `json:"ossIds,optional"`
}

type IdPathReq struct {
	Id string `path:"id"`
}

type IdReq struct {
	Id string `json:"id"`
}

type IdsReq struct {
	Ids []string `json:"ids"`
}

type LevelConfigListReq struct {
	Current  int `json:"current,optional"`
	PageSize int `json:"pageSize,optional"`
}

type OcrReq struct {
	ImageUrl string `json:"imageUrl"`
}

type PageReq struct {
	Current  int    `json:"current,optional"`
	PageSize int    `json:"pageSize,optional"`
	Keyword  string `json:"keyword,optional"`
}

type PlantListReq struct {
	Current  int    `json:"current,optional"`
	PageSize int    `json:"pageSize,optional"`
	Name     string `json:"name,optional"`
}

type PostCommentReq struct {
	PostId   string `json:"postId"`
	Content  string `json:"content"`
	ParentId string `json:"parentId,optional"`
}

type PostListReq struct {
	Current  int    `json:"current,optional"`
	PageSize int    `json:"pageSize,optional"`
	Keyword  string `json:"keyword,optional"`
	TopicId  string `json:"topicId,optional"`
}

type TopicReq struct {
	Name      string `json:"name"`
	Title     string `json:"title,optional"`
	Icon      string `json:"icon,optional"`
	Desc      string `json:"desc,optional"`
	Remark    string `json:"remark,optional"`
	StartTime string `json:"startTime,optional"`
	EndTime   string `json:"endTime,optional"`
}

type UpdateBadgeConfigReq struct {
	Id             string `json:"id"`
	Name           string `json:"name,optional"`
	Description    string `json:"description,optional"`
	Dimension      string `json:"dimension,optional"`
	GroupId        string `json:"groupId,optional"`
	Tier           int    `json:"tier,optional"`
	TargetAction   string `json:"targetAction,optional"`
	Threshold      int64  `json:"threshold,optional"`
	RewardSunlight int64  `json:"rewardSunlight,optional"`
	IconId         string `json:"iconId,optional"`
	Sort           int    `json:"sort,optional"`
}

type UpdateExchangeItemReq struct {
	Id           string `json:"id"`
	Name         string `json:"name,optional"`
	Desc         string `json:"desc,optional"`
	Description  string `json:"description,optional"`
	ImgId        string `json:"imgId,optional"`
	ImageId      string `json:"imageId,optional"`
	Type         string `json:"type,optional"`
	Cost         int64  `json:"cost,optional"`
	CostSunlight int64  `json:"costSunlight,optional"`
	Stock        int    `json:"stock,optional"`
	LimitPerUser int    `json:"limitPerUser,optional"`
	Status       int    `json:"status,optional"`
	Sort         int    `json:"sort,optional"`
	StartTime    string `json:"startTime,optional"`
	EndTime      string `json:"endTime,optional"`
}

type UpdateExchangeOrderReq struct {
	Id         string `json:"id"`
	Status     int    `json:"status"`
	TrackingNo string `json:"trackingNo,optional"`
	Remark     string `json:"remark,optional"`
}

type UpdateLevelConfigReq struct {
	Id          string `json:"id"`
	Level       int    `json:"level,optional"`
	Title       string `json:"title,optional"`
	MinSunlight int64  `json:"minSunlight,optional"`
	Perks       string `json:"perks,optional"`
}

type UpdatePlantReq struct {
	Id               string          `json:"id"`
	Name             string          `json:"name,optional"`
	Status           int             `json:"status,optional"`
	Placement        string          `json:"placement,optional"`
	PotMaterial      string          `json:"potMaterial,optional"`
	PotSize          string          `json:"potSize,optional"`
	Sunlight         string          `json:"sunlight,optional"`
	PlantingMaterial string          `json:"plantingMaterial,optional"`
	ImgIds           []string        `json:"imgIds,optional"`
	OssIds           []string        `json:"ossIds,optional"`
	CarePlans        []UpdatePlanReq `json:"carePlans,optional"`
}

type UpdateProfileReq struct {
	Nickname string `json:"nickname,optional"`
	AvatarId string `json:"avatarId,optional"`
}

type UpdateTopicReq struct {
	Id        string `json:"id"`
	Name      string `json:"name,optional"`
	Title     string `json:"title,optional"`
	Icon      string `json:"icon,optional"`
	Desc      string `json:"desc,optional"`
	Remark    string `json:"remark,optional"`
	StartTime string `json:"startTime,optional"`
	EndTime   string `json:"endTime,optional"`
}

type UpdateWikiClassReq struct {
	Id   string `json:"id"`
	Name string `json:"name,optional"`
	Icon string `json:"icon,optional"`
}

type UpdateWikiReq struct {
	Id                 string   `json:"id"`
	Name               string   `json:"name,optional"`
	LatinName          string   `json:"latinName,optional"`
	Aliases            string   `json:"aliases,optional"`
	Genus              string   `json:"genus,optional"`
	Difficulty         int      `json:"difficulty,optional"`
	IsHot              int      `json:"isHot,optional"`
	GrowthHabit        string   `json:"growthHabit,optional"`
	LightIntensity     string   `json:"lightIntensity,optional"`
	LightType          string   `json:"lightType,optional"`
	OptimalTempPeriod  string   `json:"optimalTempPeriod,optional"`
	ClassId            string   `json:"classId,optional"`
	ClassIds           []string `json:"classIds,optional"`
	RelatedWikiIds     []string `json:"relatedWikiIds,optional"`
	OssIds             []string `json:"ossIds,optional"`
	DistributionArea   string   `json:"distributionArea,optional"`
	LifeCycle          string   `json:"lifeCycle,optional"`
	ReproductionMethod string   `json:"reproductionMethod,optional"`
	PestsDiseases      string   `json:"pestsDiseases,optional"`
	Stem               string   `json:"stem,optional"`
	Fruit              string   `json:"fruit,optional"`
	FoliageType        string   `json:"foliageType,optional"`
	FoliageColor       string   `json:"foliageColor,optional"`
	FoliageShape       string   `json:"foliageShape,optional"`
	Height             int      `json:"height,optional"`
	FloweringPeriod    string   `json:"floweringPeriod,optional"`
	FloweringColor     string   `json:"floweringColor,optional"`
	FloweringShape     string   `json:"floweringShape,optional"`
	FlowerDiameter     int      `json:"flowerDiameter,optional"`
}

type UpdatePlanReq struct {
	Id           string `json:"id"`
	Name         string `json:"name,optional"`
	Icon         string `json:"icon,optional"`
	TargetAction string `json:"targetAction,optional"`
	Period       int    `json:"period,optional"`
}

type WikiClassReq struct {
	Name string `json:"name"`
	Icon string `json:"icon,optional"`
}

// ========== Banner ==========

type CreateBannerReq struct {
	Title     string `json:"title"`
	ImageId   string `json:"imageId"`
	Sort      int    `json:"sort,optional"`
	IsActive  int    `json:"isActive,optional"`
	TargetUrl string `json:"targetUrl,optional"`
}

type UpdateBannerReq struct {
	Id        string `json:"id"`
	Title     string `json:"title,optional"`
	ImageId   string `json:"imageId,optional"`
	Sort      int    `json:"sort,optional"`
	IsActive  int    `json:"isActive,optional"`
	TargetUrl string `json:"targetUrl,optional"`
}

type BannerListReq struct {
	Current  int    `json:"current,optional"`
	PageSize int    `json:"pageSize,optional"`
	Title    string `json:"title,optional"`
	IsActive int    `json:"isActive,optional"`
}

type QuickCareReq struct {
	PlantId string `json:"plantId"`
	Name    string `json:"name"`
	Icon    string `json:"icon,optional"`
	Remark  string `json:"remark,optional"`
}

type WikiListReq struct {
	Current  int    `json:"current,optional"`
	PageSize int    `json:"pageSize,optional"`
	Name     string `json:"name,optional"`
	ClassId  string `json:"classId,optional"`
	IsHot    int    `json:"isHot,optional"`
}
