Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x 8x | import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'
import { ModelOptions, Severity, prop } from '@typegoose/typegoose'
import { Exclude, Expose } from 'class-transformer'
import { ObjectId } from 'mongoose'
import { CheckoutInformation } from '../../payments/interfaces/payments'
/**
* @description Entity with all user information
*/
@ModelOptions({ schemaOptions: { timestamps: true } })
export class User {
_id: ObjectId
updatedAt: Date
@Expose({ groups: ['self'] })
@prop({ required: true, unique: true })
@ApiProperty({
description: 'Email of the user. Only exposed to self',
example: '[email protected]',
})
email: string
@Exclude()
@prop({ required: true })
password: string
@Expose({ groups: ['self'] })
@prop()
@ApiPropertyOptional({
description: 'Last login for the user. Only exposed to self',
example: Date.now(),
})
lastLogin: Date | null
@Expose()
@ApiPropertyOptional({
description: 'Creation date of user',
example: new Date(),
})
createdAt: Date
@Expose()
@prop({ required: true, default: false })
@ApiProperty({
description: 'Has the users mail been verified?',
})
hasVerifiedEmail: boolean
@Expose()
@prop({ required: true, default: 'free' })
@ApiPropertyOptional({
description: 'Payment plan of the user',
example: 'free',
enum: ['free', 'single', 'family'],
})
paymentPlan: string
@Expose()
@prop({
required: true,
default: { status: 'free', lastInformationTime: 0 },
allowMixed: Severity.ALLOW,
})
@ApiPropertyOptional({
description: 'Checkout status',
example: { status: 'free', lastInformationTime: 0 },
})
checkoutInformation: CheckoutInformation
@Expose()
@prop({ required: false })
@ApiPropertyOptional({
description: 'Stripe customer id',
example: 'cus_...',
})
stripeCustomerId: string
/*
_koooHELLOoobbbiii
kkDIDuCheckThisbiii
kkooTellUsoobbbiii
koobii
_kobi
*/
}
|