diff --git a/package.json b/package.json index 9ee645d..862fa8a 100644 --- a/package.json +++ b/package.json @@ -82,5 +82,6 @@ "git add ." ] } - } + }, + "packageManager": "pnpm@9.15.3+sha512.1f79bc245a66eb0b07c5d4d83131240774642caaa86ef7d0434ab47c0d16f66b04e21e0c086eb61e62c77efc4d7f7ec071afad3796af64892fae66509173893a" } diff --git a/src/app.module.ts b/src/app.module.ts index 4f31506..8d589f8 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -1,7 +1,10 @@ import { Module } from "@nestjs/common"; import { ConfigModule } from "@nestjs/config"; import { TypeOrmModule } from "@nestjs/typeorm"; + import { DatabaseConfigs } from "./configs/typeorm.config"; +import { UsersModule } from './modules/users/users.module'; +import { TicketsModule } from './modules/tickets/tickets.module'; @Module({ imports: [ @@ -10,8 +13,10 @@ import { DatabaseConfigs } from "./configs/typeorm.config"; isGlobal: true, }), TypeOrmModule.forRootAsync(DatabaseConfigs()), + UsersModule, + TicketsModule, ], controllers: [], providers: [], }) -export class AppModule {} +export class AppModule { } diff --git a/src/common/entities/base.entity.ts b/src/common/entities/base.entity.ts new file mode 100644 index 0000000..cca19c8 --- /dev/null +++ b/src/common/entities/base.entity.ts @@ -0,0 +1,12 @@ +import { CreateDateColumn, PrimaryGeneratedColumn, UpdateDateColumn } from "typeorm"; + +export abstract class BaseEntity { + @PrimaryGeneratedColumn("uuid") + id: string; + + @CreateDateColumn() + createdAt: Date; + + @UpdateDateColumn() + updatedAt: Date; +} diff --git a/src/modules/tickets/tickets.controller.ts b/src/modules/tickets/tickets.controller.ts new file mode 100644 index 0000000..dd62b3f --- /dev/null +++ b/src/modules/tickets/tickets.controller.ts @@ -0,0 +1,4 @@ +import { Controller } from '@nestjs/common'; + +@Controller('tickets') +export class TicketsController {} diff --git a/src/modules/tickets/tickets.module.ts b/src/modules/tickets/tickets.module.ts new file mode 100644 index 0000000..bf16864 --- /dev/null +++ b/src/modules/tickets/tickets.module.ts @@ -0,0 +1,9 @@ +import { Module } from '@nestjs/common'; +import { TicketsService } from './tickets.service'; +import { TicketsController } from './tickets.controller'; + +@Module({ + providers: [TicketsService], + controllers: [TicketsController] +}) +export class TicketsModule {} diff --git a/src/modules/tickets/tickets.service.ts b/src/modules/tickets/tickets.service.ts new file mode 100644 index 0000000..9d7a3dd --- /dev/null +++ b/src/modules/tickets/tickets.service.ts @@ -0,0 +1,4 @@ +import { Injectable } from '@nestjs/common'; + +@Injectable() +export class TicketsService {} diff --git a/src/modules/users/entities/user.entity.ts b/src/modules/users/entities/user.entity.ts new file mode 100644 index 0000000..73570a9 --- /dev/null +++ b/src/modules/users/entities/user.entity.ts @@ -0,0 +1,28 @@ +import { Column, Entity, PrimaryGeneratedColumn } from "typeorm"; + +@Entity() +export class User { + @PrimaryGeneratedColumn("uuid") + id: string; + + @Column({ type: "varchar", length: 150, unique: true }) + email: string; + + @Column({ type: "varchar", length: 11, unique: true }) + phoneNumber: string; + + @Column({ type: "varchar", length: 150 }) + password: string; + + @Column({ type: "varchar", length: 150 }) + fistName: string; + + @Column({ type: "varchar", length: 200 }) + lastName: string; + + @Column() + birthDate: string; + + @Column({ type: "varchar", length: 100 }) + nationalCode: string; +} diff --git a/src/modules/users/providers/users.repository.ts b/src/modules/users/providers/users.repository.ts new file mode 100644 index 0000000..8661a14 --- /dev/null +++ b/src/modules/users/providers/users.repository.ts @@ -0,0 +1,12 @@ +import { Injectable } from "@nestjs/common"; +import { InjectRepository } from "@nestjs/typeorm"; +import { Repository } from "typeorm"; + +import { User } from "../entities/user.entity"; + +@Injectable() +export class UserRepository extends Repository { + constructor(@InjectRepository(User) private userRepository: Repository) { + super(userRepository.target, userRepository.manager, userRepository.queryRunner); + } +} diff --git a/src/modules/users/providers/users.service.ts b/src/modules/users/providers/users.service.ts new file mode 100644 index 0000000..5fa025a --- /dev/null +++ b/src/modules/users/providers/users.service.ts @@ -0,0 +1,4 @@ +import { Injectable } from "@nestjs/common"; + +@Injectable() +export class UsersService {} diff --git a/src/modules/users/users.controller.ts b/src/modules/users/users.controller.ts new file mode 100644 index 0000000..8ab7fdd --- /dev/null +++ b/src/modules/users/users.controller.ts @@ -0,0 +1,4 @@ +import { Controller } from "@nestjs/common"; + +@Controller("users") +export class UsersController {} diff --git a/src/modules/users/users.module.ts b/src/modules/users/users.module.ts new file mode 100644 index 0000000..881a385 --- /dev/null +++ b/src/modules/users/users.module.ts @@ -0,0 +1,15 @@ +import { Module } from "@nestjs/common"; +import { TypeOrmModule } from "@nestjs/typeorm"; + +import { User } from "./entities/user.entity"; +import { UserRepository } from "./providers/users.repository"; +import { UsersService } from "./providers/users.service"; +import { UsersController } from "./users.controller"; + +@Module({ + imports: [TypeOrmModule.forFeature([User])], + providers: [UsersService, UserRepository], + controllers: [UsersController], + exports: [UsersService, TypeOrmModule], +}) +export class UsersModule {}