1
import 'package:vkdart/vkontakte.dart';
5
/// See https://dev.vk.com/ru/reference/objects/doc
6
class DocumentAttachmentModel extends CustomAttachmentModel {
7
// ignore: public_member_api_docs
8
DocumentAttachmentModel(super.payload) : super(attachType: 'doc');
10
/// Title of the document.
11
String? get title => payload['title'];
13
/// Size of the document in bytes.
14
int? get size => payload['size'];
16
/// MIME type of the document.
17
String? get ext => payload['ext'];
19
/// URL of the document.
20
String? get url => payload['url'];
22
/// Date when the document has been uploaded in Unixtime.
23
int? get createdAt => payload['date'];
26
int? get documentType => payload['type'];
28
Map<String, dynamic>? get _preview => payload['preview'];
29
Map<String, dynamic>? get _previewGraffiti => _preview?['graffiti'];
30
Map<String, dynamic>? get _previewAudioMessage => _preview?['audio_message'];
32
/// an array of image copies in different sizes.
33
List<PhotoCopyModel>? get previewPhotoSizes =>
34
(_preview?['photo']?['sizes'] as List?)
35
?.map((e) => PhotoCopyModel((e as Map).cast<String, dynamic>()))
38
/// Graffiti file URL;
39
String? get previewGraffitiSrc => _previewGraffiti?['src'];
41
/// graffiti width in px;
42
int? get previewGraffitiWidth => _previewGraffiti?['width'];
44
/// graffiti height in px;
45
int? get previewGraffitiHeight => _previewGraffiti?['height'];
47
/// Audio message duration in seconds.
48
int? get previewAudioMessageDuration => _previewAudioMessage?['duration'];
50
/// Audio message waveform.
51
List<int>? get previewAudioMessageWaveform =>
52
(_previewAudioMessage?['waveform'] as List?)?.cast<int>();
54
/// Audio message ling ogg.
55
String? get previewAudioMessageLinkOgg => _previewAudioMessage?['link_ogg'];
57
/// Audio message ling mp3.
58
String? get previewAudioMessageLinkMp3 => _previewAudioMessage?['link_mp3'];