Add TimeZone module

This commit is contained in:
faris Aljohari
2024-07-15 15:45:08 +03:00
parent f285bb50f1
commit 369dee5c97
7 changed files with 62 additions and 0 deletions

View File

@ -0,0 +1 @@
export * from './timezone.dto';

View File

@ -0,0 +1,15 @@
import { IsNotEmpty, IsString } from 'class-validator';
export class TimeZoneDto {
@IsString()
@IsNotEmpty()
public uuid: string;
@IsString()
@IsNotEmpty()
public cityName: string;
@IsString()
@IsNotEmpty()
public timeZoneOffset: string;
}

View File

@ -0,0 +1 @@
export * from './timezone.entity';

View File

@ -0,0 +1,23 @@
import { Column, Entity, OneToMany } from 'typeorm';
import { TimeZoneDto } from '../dtos';
import { AbstractEntity } from '../../abstract/entities/abstract.entity';
import { UserEntity } from '../../user/entities';
@Entity({ name: 'timezone' })
export class TimeZoneEntity extends AbstractEntity<TimeZoneDto> {
@Column({
nullable: false,
})
cityName: string;
@Column({
nullable: false,
})
timeZoneOffset: string;
@OneToMany(() => UserEntity, (user) => user.timezone)
users: UserEntity[];
constructor(partial: Partial<TimeZoneEntity>) {
super();
Object.assign(this, partial);
}
}

View File

@ -0,0 +1 @@
export * from './timezone.repository';

View File

@ -0,0 +1,10 @@
import { DataSource, Repository } from 'typeorm';
import { Injectable } from '@nestjs/common';
import { TimeZoneEntity } from '../entities';
@Injectable()
export class TimeZoneRepository extends Repository<TimeZoneEntity> {
constructor(private dataSource: DataSource) {
super(TimeZoneEntity, dataSource.createEntityManager());
}
}

View File

@ -0,0 +1,11 @@
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { TimeZoneEntity } from './entities/timezone.entity';
@Module({
providers: [],
exports: [],
controllers: [],
imports: [TypeOrmModule.forFeature([TimeZoneEntity])],
})
export class TimeZoneRepositoryModule {}