;; SPDX-License-Identifier: EUPL-1.2 ;; SPDX-FileCopyrightText: 2025 Uko Kokņevičs (defpackage :ukkoclot/tg/message (:use :c2cl :ukkoclot/tg/animation :ukkoclot/tg/chat :ukkoclot/tg/message-entity :ukkoclot/tg/photo-size :ukkoclot/tg/type-macros :ukkoclot/tg/user) (:export #:message-chat-id #:message-thread-id #:message-id #:message #:make-message #:message-p #:copy-message #:message-message-id #:message-message-thread-id #:message-from #:message-sender-boost-count #:message-sender-business-bot #:message-date #:message-business-connection-id #:message-chat #:message-is-topic-message #:message-is-automatic-forward #:message-reply-to-message #:message-reply-to-checklist-task-id #:message-via-bot #:message-edit-date #:message-has-protected-content #:message-is-from-offline #:message-is-paid-post #:message-media-group-id #:message-author-signature #:message-paid-star-count #:message-text #:message-entities #:message-effect-id #:message-animation #:message-photo #:message-caption #:message-show-caption-above-media #:message-has-media-spoiler #:message-new-chat-members #:message-new-chat-title #:message-new-chat-photo #:message-delete-chat-photo #:message-group-chat-created #:message-supergroup-chat-created #:message-channel-chat-created #:message-migrate-to-chat-id #:message-migrate-from-chat-id #:message-pinned-message #:message-connected-website)) (in-package :ukkoclot/tg/message) ;; If this is a MaybeInaccessibleMessage date will be 0 if this is inaccessible (define-tg-type message (message-id integer) (message-thread-id (or integer null) nil) ;; (direct-messages-topic (or direct-messages-topic null) nil) (from (or user null) nil) ;; (sender-chat (or chat null) nil) (sender-boost-count (or integer null) nil) (sender-business-bot (or user null) nil) (date integer) (business-connection-id (or string null) nil) (chat chat nil) ;; (forward-origin (or message-origin null) nil) (is-topic-message boolean nil) (is-automatic-forward boolean nil) (reply-to-message (or message null) nil) ;; (external-reply (or external-reply-info null) nil) ;; (quote (or text-quote null) nil) ;; (reply-to-story (or story null) nil) (reply-to-checklist-task-id (or integer null) nil) (via-bot (or user null) nil) (edit-date (or integer null) nil) (has-protected-content boolean nil) (is-from-offline boolean nil) (is-paid-post boolean nil) (media-group-id (or string null) nil) (author-signature (or string null) nil) (paid-star-count (or string null) nil) (text (or string null) nil) (entities (or (array message-entity) null) nil) ;; (link-preview-options (or link-preview-options null) nil) ;; (suggested-post-info (or suggested-post-info null) nil) (effect-id (or string null) nil) (animation (or animation null) nil) ;; (audio (or audio null) nil) ;; (document (or document null) nil) ;; (paid-media (or paid-media-info null) nil) (photo (or (array photo-size) null) nil) ;; (sticker (or sticker null) nil) ;; (story (or story null) nil) ;; (video (or video null) nil) ;; (video-note (or video-note null) nil) ;; (voice (or voice null) nil) (caption (or string null) nil) ;; (caption-entities (or (array message-entity) null) nil) (show-caption-above-media boolean nil) (has-media-spoiler boolean nil) ;; (contact (or contact null) nil) ;; (dice (or dice null) nil) ;; (game (or game null) nil) ;; (poll (or poll null) nil) ;; (venue (or venue null) nil) ;; (location (or location null) nil) (new-chat-members (or (array user) null) nil) ;; (left-chat-member (or user null) nil) (new-chat-title (or string null) nil) (new-chat-photo (or (array photo-size) null) nil) (delete-chat-photo boolean nil) (group-chat-created boolean nil) (supergroup-chat-created boolean nil) (channel-chat-created boolean nil) ;; (message-auto-delete-timer-changed (orp message-auto-delete-timer-changed null) nil) (migrate-to-chat-id (or integer null) nil) (migrate-from-chat-id (or integer null) nil) (pinned-message (or message null) nil) ;; (invoice (or invoice null) nil) ;; (successful-payment (or successful-payment null) nil) ;; (refunded-payment (or refunded-payment null) nil) ;; (users-shared (or users-shared null) nil) ;; (chat-shared (or chat-shared null) nil) ;; (gift (or gift-info null) nil) ;; (unique-gift (or unique-gift-info null) nil) (connected-website (or string null) nil) ;; (write-access-allowed (or write-access-allowed null) nil) ;; (passport-data (or passport-data null) nil) ;; (proximity-alert-triggered (or proximity-alert-triggered null) nil) ;; (boost-added (or chat-boost-added null) nil) ;; (chat-background-set (or chat-background null) nil) ;; (checklist-tasks-added (or checklist-tasks-added null) nil) ;; (direct-message-price-changed (or direct-message-price-changed null) nil) ;; (forum-topic-created (or forum-topic-created null) nil) ;; (forum-topic-edited (or forum-topic-edited null) nil) ;; (forum-topic-closed (or forum-topic-closed null) nil) ;; (forum-topic-reopened (or forum-topic-reopened null) nil) ;; (general-forum-topic-hidden (or general-forum-topic-hidden null) nil) ;; (general-forum-topic-unhidden (or general-forum-topic-unhidden null) nil) ;; (giveaway-created (or giveaway-created null) nil) ;; (giveaway-winners (or giveaway-winners null) nil) ;; (giveaway-completed (or giveaway-completed null) nil) ;; (paid-message-price-changed (or paid-message-price-changed null) nil) ;; (suggested-post-approved (or suggested-post-approved null) nil) ;; (suggested-post-approval-failed (or suggested-post-approval-failed null) nil) ;; (suggested-post-declined (or suggested-post-declined null) nil) ;; (suggested-post-paid (or suggested-post-paid null) nil) ;; (suggested-post-refunded (or suggested-post-refunded null) nil) ;; (video-chat-scheduled (or video-chat-scheduled null) nil) ;; (video-chat-started (or video-chat-started null) nil) ;; (video-chat-ended (or video-chat-ended null) nil) ;; (video-chat-participants-invited (or video-chat-participants-invited null) nil) ;; (web-app-data (or web-app-data null) nil) ;; (reply-markup (or inline-keyboard-markup null) nil) ) (defun message-id (msg) (message-message-id msg)) (defun message-chat-id (msg) (chat-id (message-chat msg))) (defun message-thread-id (msg) (message-message-thread-id msg))