| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- /**
- * Represents a product with various attributes.
- *
- * @class
- * @property {string|null} name - The name of the product
- * @property {string|null} description - A description of the product
- * @property {string|null} author - The author or creator of the product
- * @property {string|null} image - An image URL or reference for the product
- * @property {number|null} stock_count - The current inventory count
- * @property {string|null} barcode - The unique barcode identifier
- */
- export class product {
- name;
- description;
- author;
- image;
- stock_count;
- barcode;
- thumbnail;
- on_stock;
- constructor(target) {
- this.name = null;
- this.description = null;
- this.author = null;
- this.image = null;
- this.stock_count = null;
- this.barcode = null;
- this.thumbnail = null;
- this.on_stock = null;
- if ("name" in target) this.name = target["name"];
- if ("description" in target) this.description = target["description"];
- if ("author" in target) this.author = target["author"];
- if ("image" in target) this.image = target["image"];
- if ("stock_count" in target) this.stock_count = target["stock_count"];
- if ("barcode" in target) this.barcode = target["barcode"];
- if ("thumbnail" in target) this.thumbnail = target["thumbnail"];
- if ("on_stock" in target) this.on_stock = target["on_stock"];
- try {
- this.stock_count = Number(this.stock_count);
- } catch {
- this.stock_count = 0;
- }
- try {
- this.on_stock = Number(this.on_stock);
- } catch {
- this.on_stock = 0;
- }
- }
- get dump() {
- const dumped = {
- "name": new String(this.name),
- "description": new String(this.description),
- "author": new String(this.author),
- "image": new String(this.image),
- "barcode": new String(this.barcode),
- "thumbnail": new String(this.thumbnail),
- "stock_count": new String(this.stock_count)
- };
- if (this.on_stock !== null) {
- dumped["on_stock"] = new String(this.on_stock);
- }
- return dumped;
- }
- get ready() {
- if (this.name === null || this.description === null) return false;
- if (this.author === null || this.image === null) return false;
- if (this.stock_count === null || this.barcode === null) return false;
- if (this.thumbnail === null) return false;
- return true;
- }
- copy() {
- return new product(this.dump);
- }
- }
|