add client entity

This commit is contained in:
faris Aljohari
2025-03-25 02:29:00 +03:00
parent ee28d04c76
commit a4b743eb58
7 changed files with 77 additions and 0 deletions

View File

@ -42,6 +42,7 @@ import { SpaceLinkEntity } from '../modules/space/entities/space-link.entity';
import { SubspaceProductAllocationEntity } from '../modules/space/entities/subspace/subspace-product-allocation.entity';
import { SubspaceEntity } from '../modules/space/entities/subspace/subspace.entity';
import { TagEntity } from '../modules/space/entities/tag.entity';
import { ClientEntity } from '../modules/client/entities';
@Module({
imports: [
TypeOrmModule.forRootAsync({
@ -93,6 +94,7 @@ import { TagEntity } from '../modules/space/entities/tag.entity';
SubspaceModelProductAllocationEntity,
SpaceProductAllocationEntity,
SubspaceProductAllocationEntity,
ClientEntity,
],
namingStrategy: new SnakeNamingStrategy(),
synchronize: Boolean(JSON.parse(configService.get('DB_SYNC'))),

View File

@ -0,0 +1,20 @@
import { IsArray, IsNotEmpty, IsString } from 'class-validator';
export class ClientDto {
@IsString()
@IsNotEmpty()
public uuid: string;
@IsString()
@IsNotEmpty()
public clientId: string;
@IsString()
@IsNotEmpty()
public clientSecret: string;
@IsString()
@IsNotEmpty()
public redirectUri: string;
@IsArray()
@IsNotEmpty()
public scopes: string[];
}

View File

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

View File

@ -0,0 +1,42 @@
import { Entity, Column, Unique } from 'typeorm';
import { AbstractEntity } from '../../abstract/entities/abstract.entity';
import { ClientDto } from '../dtos';
@Entity({ name: 'clients' })
@Unique(['clientId'])
export class ClientEntity extends AbstractEntity<ClientDto> {
@Column({
type: 'uuid',
default: () => 'gen_random_uuid()',
nullable: false,
})
public uuid: string;
@Column({
length: 255,
nullable: false,
})
name: string;
@Column({
length: 255,
nullable: false,
unique: true,
})
clientId: string;
@Column({
length: 255,
nullable: false,
})
clientSecret: string;
@Column({
length: 255,
nullable: false,
})
redirectUri: string;
@Column('simple-array')
scopes: string[];
}

View File

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

View File

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

View File

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