package dto

type ChannelAttachmentMessageLocation struct {
	MessageID           string `json:"messageId"`
	ScopeID             string `json:"scopeId"`
	ScopeType           string `json:"scopeType"`
	ParentChannelID     string `json:"parentChannelId"`
	ThreadChannelID     string `json:"threadChannelId,omitempty"`
	ThreadRootMessageID string `json:"threadRootMessageId,omitempty"`
	ThreadTitle         string `json:"threadTitle,omitempty"`
}

type ChannelAttachmentDetail struct {
	ID           string `json:"id"`
	Filename     string `json:"filename"`
	ContentType  string `json:"contentType,omitempty"`
	SizeBytes    int64  `json:"sizeBytes,omitempty"`
	ThumbnailURL string `json:"thumbnailUrl,omitempty"`
}

type ChannelAttachmentItem struct {
	ID         string                           `json:"id"`
	Kind       string                           `json:"kind"`
	Title      string                           `json:"title"`
	CreatedAt  string                           `json:"createdAt"`
	Author     *AuthorProfile                   `json:"author,omitempty"`
	Message    ChannelAttachmentMessageLocation `json:"message"`
	Snippet    string                           `json:"snippet,omitempty"`
	Attachment *ChannelAttachmentDetail         `json:"attachment,omitempty"`
}

type ChannelAttachmentPage struct {
	Items      []ChannelAttachmentItem `json:"items"`
	HasMore    bool                    `json:"hasMore"`
	NextCursor string                  `json:"nextCursor,omitempty"`
}
