36 lines
690 B
JavaScript
36 lines
690 B
JavaScript
// @flow
|
|
import { DataTypes, sequelize } from '../sequelize';
|
|
|
|
const View = sequelize.define(
|
|
'view',
|
|
{
|
|
id: {
|
|
type: DataTypes.UUID,
|
|
defaultValue: DataTypes.UUIDV4,
|
|
primaryKey: true,
|
|
},
|
|
count: {
|
|
type: DataTypes.INTEGER,
|
|
defaultValue: 1,
|
|
},
|
|
},
|
|
{
|
|
classMethods: {
|
|
associate: models => {
|
|
View.belongsTo(models.Document);
|
|
View.belongsTo(models.User);
|
|
},
|
|
increment: async where => {
|
|
const [model, created] = await View.findOrCreate({ where });
|
|
if (!created) {
|
|
model.count += 1;
|
|
model.save();
|
|
}
|
|
return model;
|
|
},
|
|
},
|
|
}
|
|
);
|
|
|
|
export default View;
|