package structs

import (
	gitea_api "code.gitea.io/gitea/modules/structs"
)

type CreateHookOption struct {
	// required: true
	// enum: dingtalk,discord,gitea,gogs,msteams,slack,telegram,feishu,jianmu
	Type string `json:"type" binding:"Required"`
	// required: true
	Config       gitea_api.CreateHookOptionConfig `json:"config" binding:"Required"`
	Events       []string                         `json:"events"`
	BranchFilter string                           `json:"branch_filter" binding:"GlobPattern"`
	// default: false
	Active bool `json:"active"`
}

type HookTask struct {
	ID              int64                  `json:"id"`
	UUID            string                 `json:"uuid"`
	Type            string                 `json:"type"`
	Config          map[string]string      `json:"config"`
	PayloadContent  map[string]interface{} `json:"payload_content"`
	EventType       string                 `json:"event_type"`
	IsDelivered     bool                   `json:"is_delivered"`
	Delivered       int64                  `json:"delivered"`
	IsSucceed       bool                   `json:"is_succeed"`
	RequestContent  map[string]interface{} `json:"request_content"`
	ResponseContent map[string]interface{} `json:"response_content"`
}
