package service

import (
	"time"
)

// CampaignStatus represents the possible states of a campaign
type CampaignStatus string

const (
	StatusActive    CampaignStatus = "active"
	StatusCompleted CampaignStatus = "completed"
	StatusCancelled CampaignStatus = "cancelled"
	StatusExpired   CampaignStatus = "expired" // New status for deadlines
)

type ID uint64

type Campaign struct {
	ID           ID             `json:"id"`
	Title        string         `json:"title"`
	Description  string         `json:"description"`
	GoalAmount   float64        `json:"goal_amount"`
	RaisedAmount float64        `json:"raised_amount"`
	Status       CampaignStatus `json:"status"`
	CreatedAt    time.Time      `json:"created_at"`
	DeadlineAt   *time.Time     `json:"deadline_at,omitempty"`

	AdminID ID `json:"creator_id"`
}
