;; SPDX-License-Identifier: EUPL-1.2 ;; SPDX-FileCopyrightText: 2025 Uko Kokņevičs (defpackage :ukkoclot/bot/impl (:use :c2cl :iterate :ukkoclot/config) (:export :bot :bot-p :make-bot :bot-config :bot-db :bot-base-uri :bot-power-on :bot-username% :bot-id%)) (in-package :ukkoclot/bot/impl) (defstruct (bot (:constructor make-bot%)) (config (error "No value given for config") :read-only t) (db (error "No value given for DB") :read-only t) (base-uri (error "No value given for base-uri") :read-only t) (power-on t :type boolean) (username% nil :type (or string null)) (id% nil :type (or integer null))) (defun make-bot (config db) (let ((base-uri (concatenate 'string "https://api.telegram.org/bot" (config-bot-token config) "/"))) (make-bot% :config config :db db :base-uri base-uri)))