UNPKG

synt_backend

Version:

Synt light-weight node backend service

54 lines (53 loc) 1.47 kB
"use strict"; const { Model } = require("sequelize"); import { getPresignedUrl } from "./../../helpers/upload"; module.exports = (sequelize, DataTypes) => { class SettlementFile extends Model { /** * Helper method for defining associations. * This method is not a part of Sequelize lifecycle. * The `models/index` file will call this method automatically. */ static associate(models) { // define association here SettlementFile.belongsTo(models.Settlement); SettlementFile.belongsTo(models.User); } async getPresignedUrl() { try { return await getPresignedUrl({ bucket: this.bucket, key: this.key, }); } catch (error) { console.error("Error generating signed URL:", error); return null; } } } SettlementFile.init( { original_name: { type: DataTypes.STRING, get() { let original_name = this.getDataValue("original_name"); if (original_name?.indexOf(".") === -1) { original_name = original_name + "." + this.getDataValue("type").split("/").pop(); } return original_name; }, }, bucket: DataTypes.STRING, key: DataTypes.STRING, type: DataTypes.STRING, url: DataTypes.STRING, paid_at: DataTypes.DATE, }, { sequelize, modelName: "SettlementFile", } ); return SettlementFile; };