Skip to content

Commit 676c933

Browse files
committed
create posts entity
1 parent 3a12983 commit 676c933

File tree

3 files changed

+66
-1
lines changed

3 files changed

+66
-1
lines changed

src/database/database.providers.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
import { Sequelize } from 'sequelize-typescript';
22
import { User } from './../users/user.entity';
3+
import { Post } from './../posts/post.entity';
34
import { ConfigService } from './../shared/config/config.service';
45

56
export const databaseProviders = [
67
{
78
provide: 'SEQUELIZE',
89
useFactory: async (configService: ConfigService) => {
910
const sequelize = new Sequelize(configService.sequelizeOrmConfig);
10-
sequelize.addModels([User]);
11+
sequelize.addModels([User, Post]);
1112
await sequelize.sync();
1213
return sequelize;
1314
},

src/posts/post.entity.ts

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
import {
2+
Table,
3+
PrimaryKey,
4+
AutoIncrement,
5+
Column,
6+
DataType,
7+
Model,
8+
ForeignKey,
9+
Unique,
10+
Length,
11+
CreatedAt,
12+
UpdatedAt,
13+
DeletedAt,
14+
BelongsTo,
15+
} from 'sequelize-typescript';
16+
import { User } from './../users/user.entity';
17+
18+
@Table({
19+
tableName: 'post',
20+
})
21+
export class Post extends Model<Post> {
22+
@PrimaryKey
23+
@AutoIncrement
24+
@Column(DataType.BIGINT)
25+
id: number;
26+
27+
@ForeignKey(() => User)
28+
@Column({
29+
type: DataType.UUID,
30+
field: 'user_id',
31+
})
32+
userId: string;
33+
34+
@Length({
35+
min: 3,
36+
max: 60,
37+
msg: `The length of post title can't be shorter than 3 and longer than 60 `,
38+
})
39+
@Column
40+
title: string;
41+
42+
@Column
43+
content: string;
44+
45+
@CreatedAt
46+
@Column({ field: 'created_at' })
47+
createdAt: Date;
48+
49+
@UpdatedAt
50+
@Column({ field: 'updated_at' })
51+
updatedAt: Date;
52+
53+
@DeletedAt
54+
@Column({ field: 'deleted_at' })
55+
deletedAt: Date;
56+
57+
@BelongsTo(() => User)
58+
user: User;
59+
}

src/users/user.entity.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@ import {
88
CreatedAt,
99
UpdatedAt,
1010
DeletedAt,
11+
HasMany,
1112
} from 'sequelize-typescript';
1213
import { Gender } from './../shared/enum/gender';
14+
import { Post } from './../posts/post.entity';
1315

1416
@Table({
1517
tableName: 'user',
@@ -53,4 +55,7 @@ export class User extends Model<User> {
5355
@DeletedAt
5456
@Column({ field: 'deleted_at' })
5557
deletedAt: Date;
58+
59+
@HasMany(() => Post)
60+
posts: Post[];
5661
}

0 commit comments

Comments
 (0)