SpaceNinjaServer/src/models/loginModel.ts

38 lines
1.3 KiB
TypeScript
Raw Normal View History

import { IDatabaseAccountJson } 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;
const databaseAccountSchema = new Schema<IDatabaseAccountJson>(
{
email: { type: String, required: true, unique: true },
password: { type: String, required: true },
DisplayName: { type: String, required: true, unique: 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 },
2024-05-28 13:45:06 +02:00
TrackedSettings: { type: [String], default: [] },
Nonce: { type: Number, default: 0 },
Dropped: Boolean,
2025-01-31 17:15:58 +01:00
LatestEventMessageDate: { type: Date, default: 0 }
},
opts
2023-05-19 15:22:48 -03:00
);
databaseAccountSchema.set("toJSON", {
transform(_document, returnedObject) {
delete returnedObject._id;
delete returnedObject.__v;
},
virtuals: true
2023-05-19 15:22:48 -03:00
});
export const Account = model<IDatabaseAccountJson>("Account", databaseAccountSchema);