feat: add config module with controller and service

- Implemented ConfigController for handling config-related requests.
- Created ConfigService for business logic related to configurations.
- Added CreateConfigDto for validating configuration data.

feat: add good categories module with controller and service

- Implemented GoodCategoriesController for managing good categories.
- Created GoodCategoriesService for business logic related to good categories.
- Added CreateGoodCategoryDto for validating good category data.

feat: add goods module with controller and service

- Implemented GoodsController for managing goods.
- Created GoodsService for business logic related to goods.
- Added CreateGoodDto for validating good data.

feat: add profile module with controller and service

- Implemented ProfileController for managing user profiles.
- Created ProfileService for business logic related to profiles.
- Added CreateProfileDto for profile data structure.

feat: add sales invoice payments module with controller and service

- Implemented SalesInvoicePaymentsController for managing invoice payments.
- Created SalesInvoicePaymentsService for business logic related to payments.
- Added CreateSalesInvoicePaymentDto for validating payment data.

feat: add service categories module with controller and service

- Implemented ServiceCategoriesController for managing service categories.
- Created ServiceCategoriesService for business logic related to service categories.
- Added CreateServiceCategoryDto for validating service category data.

feat: add services module with controller and service

- Implemented ServicesController for managing services.
- Created ServicesService for business logic related to services.
- Added CreateServiceDto for validating service data.

feat: add trigger logs module with controller and service

- Implemented TriggerLogsController for managing trigger logs.
- Created TriggerLogsService for business logic related to trigger logs.
- Added CreateTriggerLogDto for validating trigger log data.

feat: add uploaders module for handling file uploads

- Implemented UploadersController for managing file uploads.
- Created ImageUploaderService for image upload logic.
- Created UploaderService for file handling and storage.
This commit is contained in:
2026-02-12 20:31:04 +03:30
parent de14d531e1
commit a073af76fe
116 changed files with 6108 additions and 3977 deletions
@@ -0,0 +1,20 @@
import { Injectable } from '@nestjs/common'
import { UploaderService } from './uploader.service'
@Injectable()
export class ImageUploaderService {
constructor(private readonly uploaderService: UploaderService) {}
async uploadImage(
file: Express.Multer.File,
account_id: string,
type: string,
): Promise<string> {
return this.uploaderService.uploadFile(
file.buffer,
file.originalname,
account_id,
type,
)
}
}
+25
View File
@@ -0,0 +1,25 @@
import { Injectable } from '@nestjs/common'
import { promises as fs } from 'fs'
import { join } from 'path'
import { v4 as uuidv4 } from 'uuid'
@Injectable()
export class UploaderService {
private uploadDir = join(process.cwd(), 'uploads')
async uploadFile(
buffer: Buffer,
originalname: string,
accountId: string,
type: string,
): Promise<string> {
const ext = originalname.split('.').pop()
const filename = `${uuidv4()}.${ext}`
const dirPath = join(this.uploadDir, accountId, type)
const filePath = join(dirPath, filename)
await fs.mkdir(dirPath, { recursive: true })
await fs.writeFile(filePath, buffer)
// Return a URL path, e.g. /uploads/{accountId}/{type}/{filename}
return `/uploads/${accountId}/${type}/${filename}`
}
}
@@ -0,0 +1,19 @@
import { Body, Controller, Post, UploadedFile, UseInterceptors } from '@nestjs/common'
import { FileInterceptor } from '@nestjs/platform-express'
import { ImageUploaderService } from './image-uploader.service'
@Controller('uploaders')
export class UploadersController {
constructor(private readonly imageUploaderService: ImageUploaderService) {}
@Post('image')
@UseInterceptors(FileInterceptor('file'))
async uploadImage(
@UploadedFile() file: Express.Multer.File,
@Body('accountId') accountId: string,
@Body('type') type: string,
) {
const url = await this.imageUploaderService.uploadImage(file, accountId, type)
return { url }
}
}
+11
View File
@@ -0,0 +1,11 @@
import { Module } from '@nestjs/common'
import { ImageUploaderService } from './image-uploader.service'
import { UploaderService } from './uploader.service'
import { UploadersController } from './uploaders.controller'
@Module({
providers: [UploaderService, ImageUploaderService],
controllers: [UploadersController],
exports: [UploaderService, ImageUploaderService],
})
export class UploadersModule {}