umbot
Version:
Мультиплатформенный фреймворк для создания голосовых навыков и чат-ботов с единой бизнес-логикой. Встроенная поддержка ВКонтакте, Telegram, Viber, MAX, Яндекс Алисы, Маруси и Сбера SmartApp. Архитектура на адаптерах позволяет подключать любые другие платф
115 lines (114 loc) • 5.09 kB
TypeScript
import { IModelRules } from './interface';
import { IModelState, Model } from './db/Model';
import { AppContext } from '../core';
import { TKey } from './db';
/**
* Интерфейс для внутреннего состояния модели звуковых файлов.
* Определяет структуру данных для хранения информации о звуковых файлах в базе данных.
*/
export interface ISoundModelState extends IModelState {
/**
* Идентификатор звукового файла.
* Уникальный идентификатор, используемый для ссылки на звуковой файл в API различных платформ.
* @example "doc123456789" для VK, "file_id_123456" для Telegram
*/
soundToken: string | null;
/**
* Путь к файлу.
* Может быть URL-адресом звукового файла или путем к локальному файлу.
* @example "/path/to/audio.mp3" или "http://localhost/audio.mp3"
*/
path: string | null;
/**
* Тип платформы.
* Определяет, для какой платформы предназначен звуковой файл.
*/
platform: string;
}
/**
* Модель для управления звуковыми файлами в различных платформах.
* Предоставляет единый интерфейс для работы со звуковыми файлами в Алисе, ВКонтакте, Telegram, Марусе и тд.
*
* @extends Model<ISoundModelState>
*
* @example
* // Создание и загрузка звукового файла для Telegram
* const sound = new SoundTokens(appContext);
* sound.path = '/path/to/audio.mp3';
* sound.platform = T_TELEGRAM;
* const token = await sound.selectOne();
* if (token) {
* console.log('Токен для звукового файла успешно получен, токен:', token);
* } else {
* || Загрузка аудиофайла
* }
*/
export declare class SoundTokens extends Model<ISoundModelState> {
/**
* Название таблицы для хранения данных о звуковых файлах.
*/
protected static readonly TABLE_NAME = "SoundTokens";
/**
* Флаг, указывающий, что передается содержимое файла.
* Если true, то path содержит содержимое файла, а не путь к нему.
* @defaultValue false
*/
isAttachContent: boolean;
/**
* Конструктор класса SoundTokens.
* Предоставляет унифицированный интерфейс для хранения данных о загруженных аудиофайлах.
*/
constructor(appContext: AppContext);
protected getId(): TKey;
/**
* Идентификатор звукового файла.
* Уникальный идентификатор, используемый для ссылки на звуковой файл в API различных платформ.
* @example "doc123456789" для VK, "file_id_123456" для Telegram
*/
get soundToken(): string;
/**
* Устанавливает идентификатор звукового файла.
* @param soundToken
*/
set soundToken(soundToken: string | null);
/**
* Путь к файлу.
* Может быть URL-адресом звукового файла или путем к локальному файлу.
* @example "/path/to/audio.mp3" или "http://localhost/audio.mp3"
*/
get path(): string;
/**
* Устанавливает путь к файлу.
* @param path
*/
set path(path: string | null);
/**
* Тип платформы.
* Определяет, для какой платформы предназначен звуковой файл.
*/
get platform(): string;
/**
* Устанавливает тип платформы.
* @param platform
*/
set platform(platform: string);
/**
* Возвращает название таблицы/файла с данными.
*
* @return {string} Название таблицы для хранения данных о звуковых файлах
*/
tableName(): string;
/**
* Определяет правила валидации для полей модели.
*
* @return {IModelRules[]} Массив правил валидации
*/
rules(): IModelRules[];
/**
* Возвращает метки атрибутов таблицы.
* Используется для отображения понятных названий полей.
*
* @return {ISoundModelState} Объект с метками атрибутов
*/
attributeLabels(): ISoundModelState;
}