42 lines
952 B
JavaScript
42 lines
952 B
JavaScript
export class Manga {
|
|
constructor({
|
|
id,
|
|
slug,
|
|
title,
|
|
description = null,
|
|
authors = [],
|
|
imageUrl = null,
|
|
publicationYear = null,
|
|
status = null,
|
|
rating = null,
|
|
genres = [],
|
|
createdAt = new Date().toISOString()
|
|
}) {
|
|
this.id = id;
|
|
this.slug = slug;
|
|
this.title = title;
|
|
this.description = description;
|
|
this.authors = authors;
|
|
this.imageUrl = imageUrl;
|
|
this.publicationYear = publicationYear;
|
|
this.status = status;
|
|
this.rating = rating;
|
|
this.genres = genres;
|
|
this.createdAt = createdAt;
|
|
}
|
|
|
|
static create(data) {
|
|
return new Manga(data);
|
|
}
|
|
}
|
|
|
|
export class MangaCollection {
|
|
constructor(items, total, page, limit, hasNextPage, hasPreviousPage) {
|
|
this.items = items.map(item => Manga.create(item));
|
|
this.total = total;
|
|
this.page = page;
|
|
this.limit = limit;
|
|
this.hasNextPage = hasNextPage;
|
|
this.hasPreviousPage = hasPreviousPage;
|
|
}
|
|
}
|