mirror of
https://gitea.tendokyu.moe/ppc/amnet.git
synced 2026-09-25 15:47:59 +03:00
48 lines
1.3 KiB
TypeScript
48 lines
1.3 KiB
TypeScript
import {Realm} from 'realm';
|
|
import {AMServerConnectionInfo, AMServerMetadata} from "amnet-shared";
|
|
|
|
export class AMServer extends Realm.Object<AMServer> implements AMServerConnectionInfo, AMServerMetadata {
|
|
_id!: Realm.BSON.ObjectId;
|
|
|
|
apiVersion: number;
|
|
gameId?: string;
|
|
|
|
serverName: string;
|
|
serverAddress: string;
|
|
|
|
lastUsed: Date;
|
|
createdAt: Date;
|
|
|
|
get shareUrl() {
|
|
return `http://card.ppc.moe/#/servers/add?address=${encodeURIComponent(this.serverAddress)}`;
|
|
}
|
|
|
|
static generate(serverAddress: string) {
|
|
return {
|
|
_id: new Realm.BSON.ObjectId(),
|
|
|
|
apiVersion: 0,
|
|
|
|
serverName: "New Server",
|
|
serverAddress: serverAddress,
|
|
|
|
createdAt: new Date(),
|
|
lastUsed: null
|
|
}
|
|
}
|
|
|
|
static schema: Realm.ObjectSchema = {
|
|
name: "server",
|
|
primaryKey: "_id",
|
|
|
|
properties: {
|
|
_id: "objectId",
|
|
apiVersion: {type: "int", default: 0},
|
|
gameId: {type: "string", optional: true},
|
|
serverAddress: "string",
|
|
serverName: {type: "string", default: "New Server"},
|
|
createdAt: {type: "date", default: new Date()},
|
|
lastUsed: {type: "date", optional: true}
|
|
}
|
|
};
|
|
} |