package types

import (
	"time"

	"github.com/google/uuid"
)

type ThoughtPatch struct {
	Content  *string         `json:"content,omitempty"`
	Metadata ThoughtMetadata `json:"metadata,omitempty"`
	Project  *uuid.UUID      `json:"project_id,omitempty"`
}

type Project struct {
	ID           uuid.UUID `json:"id"`
	Name         string    `json:"name"`
	Description  string    `json:"description,omitempty"`
	CreatedAt    time.Time `json:"created_at"`
	LastActiveAt time.Time `json:"last_active_at"`
}

type ProjectSummary struct {
	Project
	ThoughtCount int `json:"thought_count"`
}

type ThoughtLink struct {
	FromID    uuid.UUID `json:"from_id"`
	ToID      uuid.UUID `json:"to_id"`
	Relation  string    `json:"relation"`
	CreatedAt time.Time `json:"created_at"`
}

type LinkedThought struct {
	Thought   Thought   `json:"thought"`
	Relation  string    `json:"relation"`
	Direction string    `json:"direction"`
	CreatedAt time.Time `json:"created_at"`
}
