import { AbstractCollectionModel } from 'Model/AbstractCollection';
import { AttachmentModel } from 'Model/Attachment';

'use strict';

export class AttachmentCollectionModel extends AbstractCollectionModel
{
	/**
	 * @param {?Array} json
	 * @returns {AttachmentCollectionModel}
	 */
	static reviveFromJson(items) {
		return super.reviveFromJson(items, attachment => AttachmentModel.reviveFromJson(attachment));
/*
		const attachments = super.reviveFromJson(items, attachment => AttachmentModel.reviveFromJson(attachment));
		if (attachments) {
			attachments.InlineCount = attachments.reduce((accumulator, a) => accumulator + (a.isInline ? 1 : 0), 0);
		}
		return attachments;
*/
	}

	/**
	 * @returns {boolean}
	 */
	hasVisible() {
		return !!this.filter(item => !item.isLinked()).length;
	}

	/**
	 * @param {string} cid
	 * @returns {*}
	 */
	findByCid(cid) {
		cid = cid.replace(/^<+|>+$/g, '');
		return this.find(item => cid === item.contentId());
	}
}
