;; SPDX-License-Identifier: EUPL-1.2 ;; SPDX-FileCopyrightText: 2025 Uko Kokņevičs (defpackage :ukkoclot/state (:use :c2cl :ukkoclot/config) (:export #:bot #:make-bot #:bot-p #:copy-bot #:bot-config #:bot-db #:bot-base-uri #:bot-power-on #:bot-username% #:bot-id%)) (in-package :ukkoclot/state) (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)))