import { Schema } from "mongoose"; import { getCommonSchemas as common,aliasedEntitySchemaOpts as opts} from "@onebro/oba-common"; import { OBAuthAcct } from "../types"; const {status} = common(); const name = new Schema({first:{type:String},last:{type:String}},{_id:false}); const scope = new Schema({name:{type:String},version:{type:String}},{_id:false}); const device = new Schema({mobile:{type:Boolean},name:{type:String}}); const contactinfo = new Schema({ phn:{type:String}, method:{type:String,enum:["email","text","push"],default:"email"}},{ _id:false}); const acct = new Schema({ created:{type:Date,default:Date.now}, updated:{type:Date,default:Date.now}, status:{type:[status],default:() => [{name:"N",time:new Date()}]}, next:{type:String,unique:true}, role:{type:String,enum:["G","U","A","S","SA"],default:"U"}, scopes:{type:[scope],default:[] as any[]}, contact:{type:contactinfo}, yob:{type:String}, dob:{type:String||Date}, name:{type:name}, locs:{type:[Schema.Types.Mixed],default:[] as any[]}, device:{type:device}, info:{type:Schema.Types.Mixed,default:{}}, user:{type:String}, },opts); export {acct as obAuthAcctSchema};