Skip to content
Snippets Groups Projects
ClassificationRoot.js 1.09 KiB
Newer Older
const BaseModel = require('./BaseModel')
const timestamps = require('./properties/timestamps')

class ClassificationRoot extends BaseModel {
	static associate(models) {
		this.belongsTo(models.Upload, { foreignKey: 'upload_id' })
	}

	toJSON() {
		return {
			metric_id: this.metric_id,
			upload_id: this.upload_id,
			image_id: this.image_id,
			url: this.url,
			status: this.status,
		}
	}

}

module.exports = (sequelize, DataTypes) => {
	ClassificationRoot.init(Object.assign(
		{
			metric_id: {
				type: DataTypes.UUID,
				primaryKey: true,
				defaultValue: DataTypes.UUIDV4,
				validate: {
					isUUID: 4,
				},
			},
			upload_id: {
				type: DataTypes.UUID,
				validate: {
					isUUID: 4,
				},
			},
			image_id: {
				type: DataTypes.UUID,
				validate: {
					isUUID: 4,
				},
			},
			url: {
				type: DataTypes.TEXT,
			},
			status: {
				type: DataTypes.TEXT,
			},
			meta: {
				type: DataTypes.JSONB,
			},
		},
		timestamps(DataTypes),
	), {
		sequelize,
		paranoid: true,
		tableName: 'classification_roots',
	})

	return ClassificationRoot
}

module.exports.Model = ClassificationRoot