# Source: entities/fattachment.js

    /**
     * Attachment is a file directly tied into a note without
     * being a hidden child.
     */
    class FAttachment {
        constructor(froca, row) {
            /** @type {Froca} */
            this.froca = froca;

            this.update(row);
        }

        update(row) {
            /** @type {string} */
            this.attachmentId = row.attachmentId;
            /** @type {string} */
            this.ownerId = row.ownerId;
            /** @type {string} */
            this.role = row.role;
            /** @type {string} */
            this.mime = row.mime;
            /** @type {string} */
            this.title = row.title;
            /** @type {string} */
            this.dateModified = row.dateModified;
            /** @type {string} */
            this.utcDateModified = row.utcDateModified;
            /** @type {string} */
            this.utcDateScheduledForErasureSince = row.utcDateScheduledForErasureSince;

            /**
             * optionally added to the entity
             * @type {int}
             */
            this.contentLength = row.contentLength;

            this.froca.attachments[this.attachmentId] = this;
        }

        /** @returns {FNote} */
        getNote() {
            return this.froca.notes[this.ownerId];
        }

        /** @return {FBlob} */
        async getBlob() {
            return await this.froca.getBlob('attachments', this.attachmentId);
        }
    }

    export default FAttachment;