mirror of
https://github.com/sergeyyarkov/educt-server.git
synced 2026-10-11 02:09:07 +03:00
52 lines
1006 B
TypeScript
52 lines
1006 B
TypeScript
/* 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);
|
|
}
|
|
}
|
|
}
|