SpaceNinjaServer/src/models/loginModel.ts

60 lines
1.6 KiB
TypeScript
Raw Normal View History

2023-06-02 00:20:49 -03:00
import { IDatabaseAccountDocument } from "@/src/types/loginTypes";
2023-05-23 20:53:26 -04:00
import { model, Schema, SchemaOptions } from "mongoose";
2023-05-19 15:22:48 -03:00
const opts = {
toJSON: { virtuals: true },
toObject: { virtuals: true }
2023-05-19 15:22:48 -03:00
} satisfies SchemaOptions;
// {
// toJSON: { virtuals: true }
// }
// {
// virtuals: {
// id: {
// get() {
// return "test";
// }
// },
// toJSON: { virtuals: true }
// }
// }
const databaseAccountSchema = new Schema<IDatabaseAccountDocument>(
{
email: { type: String, required: true, unique: true },
password: { type: String, required: true },
DisplayName: { type: String, required: true },
CountryCode: { type: String, required: true },
ClientType: { type: String },
CrossPlatformAllowed: { type: Boolean, required: true },
ForceLogoutVersion: { type: Number, required: true },
AmazonAuthToken: { type: String },
AmazonRefreshToken: { type: String },
ConsentNeeded: { type: Boolean, required: true },
TrackedSettings: { type: [String], default: [] }
},
opts
2023-05-19 15:22:48 -03:00
);
databaseAccountSchema.set("toJSON", {
transform(_document, returnedObject) {
//returnedObject.id = returnedObject._id.toString();
delete returnedObject._id;
delete returnedObject.__v;
},
virtuals: true
2023-05-19 15:22:48 -03:00
});
//databaseAccountSchema.set("");
// Create a virtual property `domain` that's computed from `email`.
// databaseAccountSchema.virtual("id").get(function () {
// //console.log(this);
// return this._id;
// });
const Account = model<IDatabaseAccountDocument>("Account", databaseAccountSchema);
export { Account };