models

package
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 1, 2026 License: MIT Imports: 0 Imported by: 0

Documentation

Overview

Package models provides canonical type definitions for Basecamp API entities. These types are used throughout the SDK and CLI for API responses.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CampfireLine

type CampfireLine struct {
	ID        int64  `json:"id"`
	Content   string `json:"content"`
	CreatedAt string `json:"created_at"`
	Creator   Person `json:"creator"`
}

CampfireLine represents a campfire chat line.

type Card

type Card struct {
	ID        int64    `json:"id"`
	Title     string   `json:"title"`
	Content   string   `json:"content,omitempty"`
	DueOn     string   `json:"due_on,omitempty"`
	CreatedAt string   `json:"created_at,omitempty"`
	Parent    *Parent  `json:"parent,omitempty"`
	Assignees []Person `json:"assignees,omitempty"`
}

Card represents a Basecamp card table card.

type CardColumn

type CardColumn struct {
	ID         int64  `json:"id"`
	Title      string `json:"title"`
	CardsCount int    `json:"cards_count"`
}

CardColumn represents a card table column.

type Comment

type Comment struct {
	ID        int64  `json:"id"`
	Content   string `json:"content"`
	CreatedAt string `json:"created_at"`
	Creator   Person `json:"creator"`
}

Comment represents a comment on a Basecamp recording.

type Message

type Message struct {
	ID        int64  `json:"id"`
	Subject   string `json:"subject"`
	Content   string `json:"content,omitempty"`
	CreatedAt string `json:"created_at"`
	Creator   Person `json:"creator"`
}

Message represents a Basecamp message board message.

type Parent

type Parent struct {
	ID    int64  `json:"id,omitempty"`
	Title string `json:"title,omitempty"`
}

Parent represents a parent container (column, list, etc.).

type Person

type Person struct {
	ID   int64  `json:"id"`
	Name string `json:"name"`
}

Person represents a Basecamp person reference. Used for assignees, creators, and other user references.

type Project

type Project struct {
	ID          int64  `json:"id"`
	Name        string `json:"name"`
	Description string `json:"description,omitempty"`
	Status      string `json:"status,omitempty"`
	Purpose     string `json:"purpose,omitempty"`
	Bookmarked  bool   `json:"bookmarked,omitempty"`
	URL         string `json:"url,omitempty"`
	AppURL      string `json:"app_url,omitempty"`
}

Project represents a Basecamp project (bucket).

type Recording

type Recording struct {
	ID        int64  `json:"id"`
	Type      string `json:"type"`
	Title     string `json:"title,omitempty"`
	Content   string `json:"content,omitempty"`
	CreatedAt string `json:"created_at"`
	Creator   Person `json:"creator"`
}

Recording represents a generic Basecamp recording. Recordings are the base type for messages, todos, comments, etc.

type ScheduleEntry

type ScheduleEntry struct {
	ID          int64  `json:"id"`
	Summary     string `json:"summary"`
	Description string `json:"description,omitempty"`
	StartsAt    string `json:"starts_at"`
	EndsAt      string `json:"ends_at,omitempty"`
	AllDay      bool   `json:"all_day"`
}

ScheduleEntry represents a schedule entry.

type SearchResult

type SearchResult struct {
	ID        int64  `json:"id"`
	Title     string `json:"title"`
	Type      string `json:"type"`
	URL       string `json:"url,omitempty"`
	CreatedAt string `json:"created_at,omitempty"`
}

SearchResult represents a search result item.

type Todo

type Todo struct {
	ID          int64    `json:"id"`
	Content     string   `json:"content"`
	Description string   `json:"description,omitempty"`
	DueOn       string   `json:"due_on,omitempty"`
	Completed   bool     `json:"completed"`
	Assignees   []Person `json:"assignees,omitempty"`
}

Todo represents a Basecamp todo item.

type Todolist

type Todolist struct {
	ID                  int64  `json:"id"`
	Name                string `json:"name"`
	Description         string `json:"description,omitempty"`
	TodosRemainingCount int    `json:"todos_remaining_count"`
	CompletedRatio      string `json:"completed_ratio,omitempty"`
}

Todolist represents a Basecamp todolist container.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL