spee.ch/server/chainquery/models/ClaimModel.js
2019-01-27 01:35:36 -05:00

168 lines
3.1 KiB
JavaScript

const logger = require('winston');
const {
assetDefaults: { thumbnail: defaultThumbnail },
details: { host },
} = require('@config/siteConfig');
const getterMethods = {
generated_extension() {
switch (this.content_type) {
case 'image/jpeg':
case 'image/jpg':
return 'jpg';
case 'image/png':
return 'png';
case 'image/gif':
return 'gif';
case 'image/svg+xml':
return 'svg';
case 'video/mp4':
return 'mp4';
case 'text/markdown':
return 'md';
default:
logger.debug('setting unknown file type as file extension jpg');
return 'jpg';
}
},
// TODO: Factor this out.
generated_thumbnail() {
return this.thumbnail_url || defaultThumbnail;
},
generated_channel() {
console.log(this);
//
},
};
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() {},
},
},
{
freezeTableName: true,
getterMethods,
timestamps: false, // don't use default timestamps columns
}
);