36 lines
800 B
TypeScript
36 lines
800 B
TypeScript
import { isNumberFinite, isNumber } from "common/utils";
|
|
|
|
|
|
export interface UserMediaAdvancement {
|
|
id: number;
|
|
// Id of the media
|
|
mediaId?: number;
|
|
// Percent of advancement in the media
|
|
percent?: number;
|
|
// "Number of second of advancement in the media
|
|
time?: number;
|
|
// Number of time this media has been read
|
|
count?: number;
|
|
};
|
|
|
|
|
|
|
|
export function isUserMediaAdvancement(data: any): data is UserMediaAdvancement {
|
|
if (!isNumberFinite(data.id)) {
|
|
return false;
|
|
}
|
|
if (!isNumberFinite(data.mediaId)) {
|
|
return false;
|
|
}
|
|
if (!isNumber(data.percent)) {
|
|
return false;
|
|
}
|
|
if (!isNumberFinite(data.time)) {
|
|
return false;
|
|
}
|
|
if (!isNumberFinite(data.count)) {
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|