package model

import (
	"server/internal/consts"

	"github.com/gogf/gf/v2/os/gtime"
)

// AdsUploadIn 广告数据上传输入参数
type AdsUploadIn struct {
	UserId     int64
	NodeUid    string
	DeviceCode string
	Data       string
}

// AdsUploadOut 广告数据上传输出参数
type AdsUploadOut struct {
	Success bool `json:"success" dc:"是否成功"`
}

// AdsData 广告数据结构
type AdsData struct {
	AdsPlatId     int            `json:"ads_plat_id"`     // 平台ID：1-META，2-ADMOB
	AdsCategoryId int            `json:"ads_category_id"` // 广告分类：1-横幅广告，2-插页式广告，3-激励插页式广告，4-激励广告，5-原生广告，6-开屏广告
	AppPackage    string         `json:"app_package"`     // APP包名
	Status        consts.AdState `json:"status"`          // 状态：1-拉取失败，2-拉取成功，3-显示失败，4-显示成功，5-未观看完成，6-观看完成，7-未点击，8-已点击，9-未下载，10-已下载
}

// GetAdLifecycleIn 获取广告生命周期输入参数
type GetAdLifecycleIn struct {
	UserId        int64
	AdsPlatId     int
	AdsCategoryId int
	AppPackage    string
}

// GetAdLifecycleOut 获取广告生命周期输出参数
type GetAdLifecycleOut struct {
	Records []*AdLifecycleRecord `json:"records" dc:"广告生命周期记录"`
}

// AdLifecycleRecord 广告生命周期记录
type AdLifecycleRecord struct {
	EventId    int64          `json:"event_id" dc:"事件ID"`
	Status     consts.AdState `json:"status" dc:"状态"`
	StatusDesc string         `json:"status_desc" dc:"状态描述"`
	CreatedAt  *gtime.Time    `json:"created_at" dc:"创建时间"`
}
