universo-platform-3d
68 строк · 1.4 Кб
1import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose'
2import { ApiProperty } from '@nestjs/swagger'
3import * as mongoose from 'mongoose'
4import { Document } from 'mongoose'
5import { USER_GROUP_INVITE_STATUSES } from '../option-sets/user-group-invite-statuses'
6import { User } from '../user/user.schema'
7import { UserGroup } from './user-group.schema'
8
9export type UserGroupInviteDocument = UserGroupInvite & Document
10
11@Schema({
12timestamps: true,
13toJSON: {
14virtuals: true
15}
16})
17export class UserGroupInvite {
18@Prop({ type: mongoose.Schema.Types.ObjectId, ref: 'UserGroup' })
19@ApiProperty()
20group: UserGroup
21
22@Prop()
23@ApiProperty()
24unlimited: boolean
25
26@Prop()
27@ApiProperty()
28used: boolean
29
30@Prop({
31required: true,
32default: USER_GROUP_INVITE_STATUSES.INVITE_PENDING,
33type: String
34})
35@ApiProperty()
36status: string
37
38@Prop({
39required: true
40})
41@ApiProperty()
42completed: boolean
43
44@Prop({
45required: true,
46default: new Date()
47})
48@ApiProperty()
49completedDate: Date
50
51@Prop({
52required: true,
53type: mongoose.Schema.Types.ObjectId,
54ref: 'User'
55})
56@ApiProperty()
57creator: mongoose.Schema.Types.ObjectId
58
59@Prop({
60required: true,
61type: mongoose.Schema.Types.ObjectId,
62ref: 'User'
63})
64@ApiProperty()
65recipient: mongoose.Schema.Types.ObjectId
66}
67
68export const userGroupInvite = SchemaFactory.createForClass(UserGroupInvite)
69