User.ts 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import { Constraints, Field, FieldType, IEntity } from "../DbConnector/Query";
  2. const TABLE_NAME = "users";
  3. export default class UserModel implements IEntity {
  4. public FromDb(dbObj: Map<string, string>): UserModel {
  5. this.mUsername = dbObj.get(UserModel.USERNAME.mName) || UserModel.USERNAME.mDefault;
  6. this.mUserId = parseInt(dbObj.get(UserModel.USERID.mName) || "0", 10) || UserModel.USERID.mDefault;
  7. this.mAuthAttr = dbObj.get(UserModel.AUTHATTR.mName) || UserModel.AUTHATTR.mDefault;
  8. return this;
  9. }
  10. public ToDb(): Map<string, string> {
  11. let result = new Map();
  12. result.set(UserModel.USERNAME.mName, this.mUsername);
  13. result.set(UserModel.USERID.mName, this.mUserId || undefined);
  14. result.set(UserModel.AUTHATTR.mName, this.mAuthAttr);
  15. return result;
  16. }
  17. public GetTableName() {
  18. return TABLE_NAME;
  19. }
  20. public static GetTableName() {
  21. return TABLE_NAME;
  22. }
  23. public GetTableFields() {
  24. return [UserModel.USERID, UserModel.USERNAME, UserModel.AUTHATTR];
  25. }
  26. public GetUsername(): string {
  27. return this.mUsername;
  28. }
  29. public SetUsername(username: string): UserModel {
  30. this.mUsername = username;
  31. return this;
  32. }
  33. public SetAuth(auth: string): UserModel {
  34. this.mAuthAttr = auth;
  35. return this;
  36. }
  37. public GetTableConstraints(): Constraints {
  38. let result = new Constraints();
  39. result.mPrimaryKeys = [UserModel.USERID];
  40. result.pushUniqueField(UserModel.USERNAME);
  41. result.mIncrements.push(UserModel.USERID);
  42. return result;
  43. }
  44. private mUserId: number = 0;
  45. private mUsername: string = "";
  46. private mAuthAttr: string = "";
  47. public static readonly USERID: Field<number> = new Field<number>(TABLE_NAME, "userId", FieldType.eNumber, 0, false, 16);
  48. public static readonly USERNAME: Field<string> = new Field<string>(TABLE_NAME, "username", FieldType.eString, "", false, 16);
  49. public static readonly AUTHATTR: Field<string> = new Field<string>(TABLE_NAME, "auth", FieldType.eString, "", false, 256);
  50. }