File

src/user/schemas/user.schema.ts

Index

Properties

Properties

Optional address
Type : string
Decorators :
@Prop({required: false})
bankDetails
Type : BankDetails
Decorators :
@Prop({required: true})
cmsFields
Type : ICmsField[]
Decorators :
@Prop({required: true})
email
Type : string
Decorators :
@Prop({required: true, unique: true, index: true})
endUserRole
Type : string
Decorators :
@Prop({required: true})
Optional legalDocuments
Type : string
Decorators :
@Prop({required: false})
name
Type : string
Decorators :
@Prop({required: true})
onboardByEmail
Type : string
Decorators :
@Prop({required: true})
subscribedBonds
Type : string[]
Decorators :
@Prop({required: false})
subscribedFunds
Type : Fund[]
Decorators :
@Prop({required: true, type: undefined, set: values => })
wallets
Type : Wallet[]
Decorators :
@Prop({required: true})
import { Document, SchemaTypes } from "mongoose";
import { Prop, Schema, SchemaFactory } from "@nestjs/mongoose";

import type { Fund } from "src/security/schemas/fund.schema";
import type { Wallet } from "src/wallet/schemas/wallet.schema";
import type { BankDetails } from "src/shared/schemas";
import { ICmsField } from "src/common/interfaces";

export type UserDocument = User & Document;

@Schema({
  strict: true,
  timestamps: { createdAt: "created", updatedAt: "updated" },
})
export class User {
  @Prop({ required: true, unique: true, index: true })
  email: string;
  @Prop({
    required: true,
    type: [{ type: SchemaTypes.ObjectId, ref: "Fund" }],
    set: (values: string[]) => [...new Set(values)],
  })
  subscribedFunds: Fund[];

  @Prop({
    required: false,
  })
  subscribedBonds: string[];

  @Prop({
    required: false,
  })
  address?: string;

  @Prop({ required: true })
  name: string;

  @Prop({ required: false })
  legalDocuments?: string;

  @Prop({ required: true })
  endUserRole: string;

  @Prop({ required: true })
  onboardByEmail: string;

  @Prop({
    required: true,
  })
  wallets: Wallet[];

  @Prop({
    required: true,
  })
  cmsFields: ICmsField[];

  @Prop({ required: true })
  bankDetails: BankDetails;
}

export const UserSchema = SchemaFactory.createForClass(User);

results matching ""

    No results matching ""