Topup
Модель предназначена для хранения информации о пополнениях счета пользователя.
Включает в себя детали, такие как сумма пополнения, дата транзакции, платежная система, идентификатор транзакции и текущий статус.
Для внутренних платёжных способов может использоваться полеcredentials.
Node.JS (sequelize)
const { DataTypes, Sequelize, UUIDV4 } = require('sequelize');
const sequelize = new Sequelize(/* ... */);
const Topup = sequelize.define('Topup', {
id: {
type: DataTypes.UUID,
defaultValue: UUIDV4,
primaryKey: true
},
amount: {
type: DataTypes.DECIMAL(10, 2), // сумма в usd
allowNull: false
},
date: {
type: DataTypes.DATE, // дата платежа
allowNull: false,
defaultValue: Sequelize.NOW
},
paymentSystem: {
type: DataTypes.STRING, // внутренний идентификатор платёжного метода (системы)
allowNull: false
},
transactionId: {
type: DataTypes.STRING, // внутренний идентификатор платежа
allowNull: true
},
status: {
type: DataTypes.STRING, // статус (pending / error / success / fraud / ...)
allowNull: false
},
credentials: {
type: DataTypes.STRING, // внутренние credentials (например, адрес крипто-кошелёка)
allowNull: true
}
});
Go (GORM)
import (
"github.com/google/uuid"
"gorm.io/gorm"
)
type Topup struct {
ID uuid.UUID `gorm:"type:uuid;primary_key;default:uuid_generate_v4()"`
Amount float64 `gorm:"type:decimal(10,2);not null"`
Date time.Time `gorm:"type:date;not null"`
PaymentSystem string `gorm:"type:string;not null"`
TransactionId *string `gorm:"type:string"`
Status string `gorm:"type:string;not null"`
Credentials *string `gorm:"type:string"`
}
