forked from ebhomengo/niki
31 lines
811 B
Go
31 lines
811 B
Go
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"`
|
|
}
|