33 lines
1005 B
TypeScript
33 lines
1005 B
TypeScript
|
|
import { Model, RelationMappings, RelationMappingsThunk } from 'objection';
|
||
|
|
import { BaseModel } from './base.model';
|
||
|
|
|
||
|
|
export class Wallet extends BaseModel {
|
||
|
|
static tableName = 'wallets';
|
||
|
|
|
||
|
|
id!: string;
|
||
|
|
address!: string;
|
||
|
|
encryptedPrivateKey!: string;
|
||
|
|
ownerType!: 'USER' | 'DEPARTMENT';
|
||
|
|
ownerId!: string;
|
||
|
|
isActive!: boolean;
|
||
|
|
createdAt!: Date;
|
||
|
|
updatedAt!: Date;
|
||
|
|
|
||
|
|
static get jsonSchema() {
|
||
|
|
return {
|
||
|
|
type: 'object',
|
||
|
|
required: ['address', 'encryptedPrivateKey', 'ownerType', 'ownerId'],
|
||
|
|
properties: {
|
||
|
|
id: { type: 'string', format: 'uuid' },
|
||
|
|
address: { type: 'string', maxLength: 42 },
|
||
|
|
encryptedPrivateKey: { type: 'string' },
|
||
|
|
ownerType: { type: 'string', enum: ['USER', 'DEPARTMENT'] },
|
||
|
|
ownerId: { type: 'string', format: 'uuid' },
|
||
|
|
isActive: { type: 'boolean', default: true },
|
||
|
|
createdAt: { type: 'string', format: 'date-time' },
|
||
|
|
updatedAt: { type: 'string', format: 'date-time' },
|
||
|
|
},
|
||
|
|
};
|
||
|
|
}
|
||
|
|
}
|