import { Constraints, Field, FieldType, IEntity } from "../DbConnector/Query"; const TABLE_NAME = "users"; export default class UserModel implements IEntity { public FromDb(dbObj: Map): UserModel { this.mUsername = dbObj.get(UserModel.USERNAME.mName) || UserModel.USERNAME.mDefault; this.mUserId = parseInt(dbObj.get(UserModel.USERID.mName) || "0", 10) || UserModel.USERID.mDefault; this.mAuthAttr = dbObj.get(UserModel.AUTHATTR.mName) || UserModel.AUTHATTR.mDefault; return this; } public ToDb(): Map { let result = new Map(); result.set(UserModel.USERNAME.mName, this.mUsername); result.set(UserModel.USERID.mName, this.mUserId || undefined); result.set(UserModel.AUTHATTR.mName, this.mAuthAttr); return result; } public GetTableName() { return TABLE_NAME; } public static GetTableName() { return TABLE_NAME; } public GetTableFields() { return [UserModel.USERID, UserModel.USERNAME, UserModel.AUTHATTR]; } public GetUsername(): string { return this.mUsername; } public SetUsername(username: string): UserModel { this.mUsername = username; return this; } public SetAuth(auth: string): UserModel { this.mAuthAttr = auth; return this; } public GetTableConstraints(): Constraints { let result = new Constraints(); result.mPrimaryKeys = [UserModel.USERID]; result.pushUniqueField(UserModel.USERNAME); result.mIncrements.push(UserModel.USERID); return result; } private mUserId: number = 0; private mUsername: string = ""; private mAuthAttr: string = ""; public static readonly USERID: Field = new Field(TABLE_NAME, "userId", FieldType.eNumber, 0, false, 16); public static readonly USERNAME: Field = new Field(TABLE_NAME, "username", FieldType.eString, "", false, 16); public static readonly AUTHATTR: Field = new Field(TABLE_NAME, "auth", FieldType.eString, "", false, 256); }