Documentation
¶
Overview ¶
ABOUTME: Core Office OS object types and structures ABOUTME: Defines BaseObject and ACLEntry for all object kinds
ABOUTME: TaskObject implementation for Office OS task management ABOUTME: Provides task creation, status transitions, and due date tracking
Index ¶
- Constants
- type ACLEntry
- type BaseObject
- type TaskObject
- func (t *TaskObject) AddRelatedRecord(recordID uuid.UUID)
- func (t *TaskObject) GetAssigneeID() uuid.UUID
- func (t *TaskObject) GetCompletedAt() *time.Time
- func (t *TaskObject) GetDueAt() *time.Time
- func (t *TaskObject) GetRelatedRecordIDs() []uuid.UUID
- func (t *TaskObject) GetStatus() string
- func (t *TaskObject) GetTitle() string
- func (t *TaskObject) IsDueSoon(days int) bool
- func (t *TaskObject) IsOverdue() bool
- func (t *TaskObject) MarshalJSON() ([]byte, error)
- func (t *TaskObject) SetAssigneeID(assigneeID uuid.UUID)
- func (t *TaskObject) SetDueAt(dueAt *time.Time)
- func (t *TaskObject) SetStatus(status string)
- func (t *TaskObject) SetTitle(title string)
- func (t *TaskObject) TransitionStatus(newStatus string) error
- func (t *TaskObject) UnmarshalJSON(data []byte) error
Constants ¶
const ( KindUser = "user" KindRecord = "record" KindTask = "task" KindEvent = "event" KindMessage = "message" KindActivity = "activity" KindNotification = "notification" )
Object kinds.
const ( RoleOwner = "owner" RoleEditor = "editor" RoleViewer = "viewer" )
ACL roles.
const ( TaskFieldTitle = "title" TaskFieldStatus = "status" TaskFieldAssigneeID = "assigneeId" TaskFieldDueAt = "dueAt" TaskFieldCompletedAt = "completedAt" TaskFieldRelatedRecordIDs = "relatedRecordIds" )
Task field keys.
const ( TaskStatusTodo = "todo" TaskStatusInProgress = "in_progress" TaskStatusDone = "done" TaskStatusCancelled = "cancelled" )
Task statuses.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BaseObject ¶
type BaseObject struct {
ID uuid.UUID `json:"id"`
Kind string `json:"kind"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
CreatedBy uuid.UUID `json:"created_by"`
ACL []ACLEntry `json:"acl"`
Tags []string `json:"tags,omitempty"`
Fields map[string]interface{} `json:"fields"`
}
BaseObject represents the core structure for all Office OS objects.
type TaskObject ¶
type TaskObject struct {
BaseObject
}
TaskObject represents a task in the Office OS.
func NewTaskObject ¶
func NewTaskObject(createdBy uuid.UUID, title string, assigneeID uuid.UUID, dueAt *time.Time) *TaskObject
NewTaskObject creates a new task object.
func (*TaskObject) AddRelatedRecord ¶
func (t *TaskObject) AddRelatedRecord(recordID uuid.UUID)
AddRelatedRecord adds a related record ID.
func (*TaskObject) GetAssigneeID ¶
func (t *TaskObject) GetAssigneeID() uuid.UUID
GetAssigneeID returns the assignee ID.
func (*TaskObject) GetCompletedAt ¶
func (t *TaskObject) GetCompletedAt() *time.Time
GetCompletedAt returns the completion timestamp.
func (*TaskObject) GetDueAt ¶
func (t *TaskObject) GetDueAt() *time.Time
GetDueAt returns the due date.
func (*TaskObject) GetRelatedRecordIDs ¶
func (t *TaskObject) GetRelatedRecordIDs() []uuid.UUID
GetRelatedRecordIDs returns the list of related record IDs.
func (*TaskObject) GetStatus ¶
func (t *TaskObject) GetStatus() string
GetStatus returns the task status.
func (*TaskObject) GetTitle ¶
func (t *TaskObject) GetTitle() string
GetTitle returns the task title.
func (*TaskObject) IsDueSoon ¶
func (t *TaskObject) IsDueSoon(days int) bool
IsDueSoon returns true if the task is due within the specified number of days.
func (*TaskObject) IsOverdue ¶
func (t *TaskObject) IsOverdue() bool
IsOverdue returns true if the task is past its due date and not completed.
func (*TaskObject) MarshalJSON ¶
func (t *TaskObject) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler.
func (*TaskObject) SetAssigneeID ¶
func (t *TaskObject) SetAssigneeID(assigneeID uuid.UUID)
SetAssigneeID sets the assignee ID.
func (*TaskObject) SetDueAt ¶
func (t *TaskObject) SetDueAt(dueAt *time.Time)
SetDueAt sets the due date.
func (*TaskObject) SetStatus ¶
func (t *TaskObject) SetStatus(status string)
SetStatus sets the task status without validation.
func (*TaskObject) SetTitle ¶
func (t *TaskObject) SetTitle(title string)
SetTitle sets the task title.
func (*TaskObject) TransitionStatus ¶
func (t *TaskObject) TransitionStatus(newStatus string) error
TransitionStatus validates and transitions the task status.
func (*TaskObject) UnmarshalJSON ¶
func (t *TaskObject) UnmarshalJSON(data []byte) error
UnmarshalJSON implements json.Unmarshaler.