objects

package
v1.5.1 Latest Latest
Warning

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

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

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

View Source
const (
	KindUser         = "user"
	KindRecord       = "record"
	KindTask         = "task"
	KindEvent        = "event"
	KindMessage      = "message"
	KindActivity     = "activity"
	KindNotification = "notification"
)

Object kinds.

View Source
const (
	RoleOwner  = "owner"
	RoleEditor = "editor"
	RoleViewer = "viewer"
)

ACL roles.

View Source
const (
	TaskFieldTitle            = "title"
	TaskFieldStatus           = "status"
	TaskFieldAssigneeID       = "assigneeId"
	TaskFieldDueAt            = "dueAt"
	TaskFieldCompletedAt      = "completedAt"
	TaskFieldRelatedRecordIDs = "relatedRecordIds"
)

Task field keys.

View Source
const (
	TaskStatusTodo       = "todo"
	TaskStatusInProgress = "in_progress"
	TaskStatusDone       = "done"
	TaskStatusCancelled  = "cancelled"
)

Task statuses.

Variables

This section is empty.

Functions

This section is empty.

Types

type ACLEntry

type ACLEntry struct {
	ActorID uuid.UUID `json:"actorId"`
	Role    string    `json:"role"`
}

ACLEntry represents an access control entry.

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.

Jump to

Keyboard shortcuts

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