58 lines
944 B
TypeScript
58 lines
944 B
TypeScript
import { randomUUID } from 'node:crypto'
|
|
|
|
import { Entity, ManyToOne, PrimaryKey, Property } from '@mikro-orm/core'
|
|
|
|
import { BaseEntity } from '#application/base/baseEntity'
|
|
import { UUID } from '#application/types'
|
|
import { User } from '#entities/user'
|
|
|
|
export class BasePasswordResetToken extends BaseEntity {
|
|
@PrimaryKey()
|
|
id = randomUUID()
|
|
|
|
@ManyToOne({ deleteRule: 'cascade' })
|
|
user!: User
|
|
|
|
@Property({ unique: true })
|
|
token!: string
|
|
|
|
@Property()
|
|
createdAt = new Date()
|
|
|
|
setId(id: UUID) {
|
|
this.id = id
|
|
return this
|
|
}
|
|
|
|
getId() {
|
|
return this.id
|
|
}
|
|
|
|
setUser(user: User) {
|
|
this.user = user
|
|
return this
|
|
}
|
|
|
|
getUser() {
|
|
return this.user
|
|
}
|
|
|
|
setToken(token: string) {
|
|
this.token = token
|
|
return this
|
|
}
|
|
|
|
getToken() {
|
|
return this.token
|
|
}
|
|
|
|
setCreatedAt(createdAt: Date) {
|
|
this.createdAt = createdAt
|
|
return this
|
|
}
|
|
|
|
getCreatedAt() {
|
|
return this.createdAt
|
|
}
|
|
}
|