package model

import "time"

// DailyTask defines a daily or weekly task template.
type DailyTask struct {
	ID             string `json:"id"`
	Title          string `json:"title"`
	Description    string `json:"description"`
	ObjectiveType  string `json:"objectiveType"`  // kill_count, elite_kill, collect_gold, use_buff, reach_level
	ObjectiveCount int    `json:"objectiveCount"`
	RewardType     string `json:"rewardType"`  // gold, potion
	RewardAmount   int    `json:"rewardAmount"`
	Period         string `json:"period"` // daily, weekly
}

// HeroDailyTask tracks a hero's progress on a daily/weekly task for a period.
type HeroDailyTask struct {
	HeroID      int64     `json:"heroId"`
	TaskID      string    `json:"taskId"`
	Progress    int       `json:"progress"`
	Completed   bool      `json:"completed"`
	Claimed     bool      `json:"claimed"`
	PeriodStart time.Time `json:"periodStart"`
	Task        *DailyTask `json:"task,omitempty"`
}

// DailyTaskReward holds the reward granted when claiming a daily/weekly task.
type DailyTaskReward struct {
	RewardType   string `json:"rewardType"`
	RewardAmount int    `json:"rewardAmount"`
}
