import { ApiExtraModels, ApiProperty, getSchemaPath } from '@nestjs/swagger'; import { BinaryFile, RemoteFile, VoiceBinaryFile, VoiceRemoteFile, } from './files.dto'; export const BROADCAST_ID = 'status@broadcast'; class StatusRequest { @ApiProperty({ description: 'it is always necessary to inform the list of contacts that will have access to the posted status', example: ['55xxxxxxxxxxx@c.us'], }) contacts = ['55xxxxxxxxxxx@c.us']; } export class TextStatus extends StatusRequest { text = 'Have a look! https://waha.devlike.pro/'; backgroundColor = '#38b42f'; font = 1; } @ApiExtraModels(BinaryFile, RemoteFile) export class ImageStatus extends StatusRequest { @ApiProperty({ oneOf: [ { $ref: getSchemaPath(BinaryFile) }, { $ref: getSchemaPath(RemoteFile) }, ], }) file: BinaryFile | RemoteFile; caption: string; } @ApiExtraModels(VoiceBinaryFile, VoiceRemoteFile) export class VoiceStatus extends StatusRequest { @ApiProperty({ oneOf: [ { $ref: getSchemaPath(VoiceBinaryFile) }, { $ref: getSchemaPath(VoiceRemoteFile) }, ], }) file: VoiceBinaryFile | VoiceRemoteFile; backgroundColor = '#38b42f'; } @ApiExtraModels(BinaryFile, RemoteFile) export class VideoStatus extends StatusRequest { @ApiProperty({ oneOf: [ { $ref: getSchemaPath(BinaryFile) }, { $ref: getSchemaPath(RemoteFile) }, ], }) file: BinaryFile | RemoteFile; caption: string; }