File size: 1,475 Bytes
b62a170
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
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;
}