forked from dziraf/admin-bro-mikroorm
-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathUser.ts
37 lines (27 loc) · 977 Bytes
/
User.ts
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
/* eslint-disable no-use-before-define */
import { v4 } from 'uuid';
import { BaseEntity, Entity, Enum, OneToMany, PrimaryKey, Property } from '@mikro-orm/core';
import type { Car } from './Car.js';
enum UserRole {
ADMIN = 'admin',
CLIENT = 'client',
}
@Entity({ tableName: 'users' })
export class User extends BaseEntity {
@PrimaryKey({ columnType: 'uuid' })
id = v4();
@Property({ fieldName: 'first_name', columnType: 'text' })
firstName: string;
@Property({ fieldName: 'last_name', columnType: 'text' })
lastName: string;
@Property({ fieldName: 'age', columnType: 'integer' })
age: number;
@Enum(() => UserRole)
role: UserRole;
@Property({ fieldName: 'created_at', columnType: 'timestamptz' })
createdAt: Date = new Date();
@Property({ fieldName: 'updated_at', columnType: 'timestamptz', onUpdate: () => new Date() })
updatedAt: Date = new Date();
@OneToMany(() => 'Car', (car: Car) => car.owner)
cars: Car[];
}