import { Entity, Column, PrimaryGeneratedColumn, CreateDateColumn, UpdateDateColumn, VersionColumn, Generated } from 'typeorm';
export enum Role {
USER = 'user',
ADMIN = 'admin'
}
@Entity()
export class UserModel {
@PrimaryGeneratedColumn()
id: number;
@Column({
type: 'varchar',
name: 'title',
length: 300,
nullable: true,
update: true, // true 면 처음 저장할떄만 값 지정 가능. 이후에는 값 변경 안됨.
select: false, // find()를 실행할때 기본으로 값을 불러올지, 기본값은 true
default: 'default title', // 아무것도 입력 안했을때 기본적으로 입력되게 할 값
unique: false, // 기본값은 false. 중복값을 허용하지 않는다. 즉 row 에 값이 1일 경우 다른 row 에서 같은 값을 가질 수 없다. (사용자의 이메일)
})
title: string;
@Column({
type: 'enum', // 값을 강제로 넣고자할때 enum을 사용한다.
enum: Role,
default: Role.USER // 저장할때, 해당 값은 필수로 들어가야한다. 여기서 default를 지정하지 않을 경우 insert 또는 save 할때 해당 값이 없으면 에러가 발생한다.
})
role: Role;
@CreateDateColumn()
createdAt: Date;
@UpdateDateColumn()
updatedAt: Date;
// 데이터가 업데이트 될때마다 1씩 올라간다.
// 정확히 말하자면, save() 함수를 호출할 때마다 1씩 올라간다.
@VersionColumn()
version: number;
@Column()
@Generated('uuid')
additionalId: number;
}
댓글