/* eslint-disable no-param-reassign */ import { DateTime } from 'luxon'; import { BaseModel, beforeCreate, beforeSave, column, } from '@ioc:Adonis/Lucid/Orm'; import Hash from '@ioc:Adonis/Core/Hash'; import { nanoid } from 'nanoid'; export default class User extends BaseModel { @column({ isPrimary: true }) public id: string; @column() public name: string; @column() public surname: string; @column() public patronymic: string; @column() public login: string; @column() public email: string; @column({ serializeAs: null }) public password: string; @column.dateTime({ autoCreate: true }) public createdAt: DateTime; @column.dateTime({ autoCreate: true, autoUpdate: true }) public updatedAt: DateTime; @beforeCreate() public static assignUui(user: User) { user.id = nanoid(); } @beforeSave() public static async hashPassword(user: User) { if (user.$dirty.password) { user.password = await Hash.make(user.password); } } }