package contract import ( "time" ) // Response Contracts type GetCustomerPointsResponse struct { Status string `json:"status"` Message string `json:"message"` Data *GetCustomerPointsResponseData `json:"data,omitempty"` } type GetCustomerPointsResponseData struct { TotalPoints int64 `json:"total_points"` PointsHistory []PointsHistoryItem `json:"points_history,omitempty"` LastUpdated time.Time `json:"last_updated"` } type PointsHistoryItem struct { ID string `json:"id"` Points int64 `json:"points"` Type string `json:"type"` // EARNED, REDEEMED, EXPIRED Description string `json:"description"` CreatedAt time.Time `json:"created_at"` } type GetCustomerTokensResponse struct { Status string `json:"status"` Message string `json:"message"` Data *GetCustomerTokensResponseData `json:"data,omitempty"` } type GetCustomerTokensResponseData struct { TotalTokens int64 `json:"total_tokens"` TokensHistory []TokensHistoryItem `json:"tokens_history,omitempty"` LastUpdated time.Time `json:"last_updated"` } type TokensHistoryItem struct { ID string `json:"id"` Tokens int64 `json:"tokens"` Type string `json:"type"` // EARNED, REDEEMED, EXPIRED Description string `json:"description"` CreatedAt time.Time `json:"created_at"` } type GetCustomerWalletResponse struct { Status string `json:"status"` Message string `json:"message"` Data *GetCustomerWalletResponseData `json:"data,omitempty"` } type GetCustomerWalletResponseData struct { TotalPoints int64 `json:"total_points"` TotalTokens int64 `json:"total_tokens"` PointsHistory []PointsHistoryItem `json:"points_history,omitempty"` TokensHistory []TokensHistoryItem `json:"tokens_history,omitempty"` LastUpdated time.Time `json:"last_updated"` }