spotube/lib/entities/CacheTrack.dart
2022-06-18 13:50:56 +06:00

74 lines
1.5 KiB
Dart

import 'package:hive/hive.dart';
import 'package:youtube_explode_dart/youtube_explode_dart.dart';
part 'CacheTrack.g.dart';
@HiveType(typeId: 2)
class CacheTrackEngagement {
@HiveField(0)
late int viewCount;
@HiveField(1)
late int? likeCount;
@HiveField(2)
late int? dislikeCount;
CacheTrackEngagement();
CacheTrackEngagement.fromEngagement(Engagement engagement)
: viewCount = engagement.viewCount,
likeCount = engagement.likeCount,
dislikeCount = engagement.dislikeCount;
}
@HiveType(typeId: 1)
class CacheTrack extends HiveObject {
@HiveField(0)
late String id;
@HiveField(1)
late String title;
@HiveField(2)
late String channelId;
@HiveField(3)
late String? uploadDate;
@HiveField(4)
late String? publishDate;
@HiveField(5)
late String description;
@HiveField(6)
late String? duration;
@HiveField(7)
late List<String>? keywords;
@HiveField(8)
late CacheTrackEngagement engagement;
@HiveField(9)
late String mode;
@HiveField(10)
late String author;
CacheTrack();
CacheTrack.fromVideo(Video video, this.mode)
: id = video.id.value,
title = video.title,
author = video.author,
channelId = video.channelId.value,
uploadDate = video.uploadDate.toString(),
publishDate = video.publishDate.toString(),
description = video.description,
duration = video.duration.toString(),
keywords = video.keywords,
engagement = CacheTrackEngagement.fromEngagement(video.engagement);
}