spee.ch/server/chainquery/models/ClaimModel.js
2019-02-26 03:12:11 -05:00

153 lines
2.9 KiB
JavaScript

const logger = require('winston');
const mime = require('mime-types');
const {
serving: { customFileExtensions },
} = require('@config/siteConfig');
const getterMethods = {
generated_extension() {
logger.debug('trying to generate extension', this.content_type);
if (customFileExtensions.hasOwnProperty(this.content_type)) {
return customFileExtensions[this.content_type];
} else {
return mime.extension(this.content_type) ? mime.extension(this.content_type) : 'jpg';
}
},
};
export default (sequelize, { BOOLEAN, DATE, DECIMAL, ENUM, INTEGER, STRING, TEXT }) =>
sequelize.define(
'claim',
{
id: {
primaryKey: true,
type: INTEGER,
set() {},
},
transaction_hash_id: {
type: STRING,
set() {},
},
vout: {
type: INTEGER,
set() {},
},
name: {
type: STRING,
set() {},
},
claim_id: {
type: STRING,
set() {},
},
claim_type: {
type: INTEGER,
set() {},
},
publisher_id: {
type: STRING,
set() {},
},
publisher_sig: {
type: STRING,
set() {},
},
certificate: {
type: STRING,
set() {},
},
sd_hash: {
type: STRING,
set() {},
},
transaction_time: {
type: INTEGER,
set() {},
},
version: {
type: STRING,
set() {},
},
valid_at_height: {
type: INTEGER,
set() {},
},
height: {
type: INTEGER,
set() {},
},
effective_amount: {
type: INTEGER,
set() {},
},
author: {
type: STRING,
set() {},
},
description: {
type: STRING,
set() {},
},
content_type: {
type: STRING,
set() {},
},
is_nsfw: {
type: BOOLEAN,
set() {},
},
language: {
type: STRING,
set() {},
},
thumbnail_url: {
type: STRING,
set() {},
},
title: {
type: STRING,
set() {},
},
fee: {
type: DECIMAL(58, 8),
set() {},
},
fee_currency: {
type: STRING,
set() {},
},
bid_state: {
type: ENUM('Active', 'Expired', 'Controlling', 'Spent', 'Accepted'),
set() {},
},
created_at: {
type: DATE(6),
set() {},
},
modified_at: {
type: DATE(6),
set() {},
},
fee_address: {
type: STRING,
set() {},
},
claim_address: {
type: STRING,
set() {},
},
license: {
type: STRING,
set() {},
},
license_url: {
type: STRING,
set() {},
},
},
{
freezeTableName: true,
getterMethods,
timestamps: false, // don't use default timestamps columns
}
);