From 4636450628b9f8d68a507e2f1af8cb8636dd0603 Mon Sep 17 00:00:00 2001 From: morteza-mortezai Date: Thu, 2 Jul 2026 16:33:17 +0330 Subject: [PATCH] rename module --- docs/architecture.md | 2 +- src/app.module.ts | 4 +- .../form-builder/entities/field.entity.ts | 2 +- .../form-builder/form-builder.module.ts | 4 +- src/modules/form-builder/interface/print.ts | 2 +- .../form-builder/provider/field.service.ts | 12 ++--- .../controller/print-form.controller.ts} | 18 ++++---- .../dto/create-section.dto.ts | 0 .../dto/update-section.dto.ts | 0 .../entities/print-form.entity.ts} | 2 +- .../print-form/interface/print-form.ts | 6 +++ src/modules/print-form/print-form.module.ts | 24 ++++++++++ .../provider/print-form.service.ts} | 46 +++++++++---------- .../repository/print-form.repository.ts} | 6 +-- src/modules/print/interface/print.ts | 6 --- src/modules/print/print.module.ts | 24 ---------- 16 files changed, 79 insertions(+), 79 deletions(-) rename src/modules/{print/controller/print.controller.ts => print-form/controller/print-form.controller.ts} (81%) rename src/modules/{print => print-form}/dto/create-section.dto.ts (100%) rename src/modules/{print => print-form}/dto/update-section.dto.ts (100%) rename src/modules/{print/entities/print.entity.ts => print-form/entities/print-form.entity.ts} (88%) create mode 100644 src/modules/print-form/interface/print-form.ts create mode 100644 src/modules/print-form/print-form.module.ts rename src/modules/{print/provider/print.service.ts => print-form/provider/print-form.service.ts} (56%) rename src/modules/{print/repository/print.repository.ts => print-form/repository/print-form.repository.ts} (54%) delete mode 100644 src/modules/print/interface/print.ts delete mode 100644 src/modules/print/print.module.ts diff --git a/docs/architecture.md b/docs/architecture.md index 745f991..a394e48 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -63,7 +63,7 @@ Current modules: - **invoice** — Invoicing - **order** — Order lifecycle - **payment** — Online payments (Zarinpal) -- **print** — Print-related admin operations +- **print-form** — Print form sections and PDF generation - **ticket** — Support tickets - **chat** — Order/chat messaging - **notification** — SMS, push, WebSocket notifications diff --git a/src/app.module.ts b/src/app.module.ts index b22a318..69367d7 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -15,7 +15,7 @@ import { PaymentModule } from './modules/payment/payments.module'; import { NotificationsModule } from './modules/notification/notifications.module'; import { EventEmitterModule } from '@nestjs/event-emitter'; import { CacheModule } from '@nestjs/cache-manager'; -import { PrintModule } from './modules/print/print.module'; +import { PrintFormModule } from './modules/print-form/print-form.module'; import { FormBuilderModule } from './modules/form-builder/form-builder.module'; import { RequestModule } from './modules/request/request.module'; import { InvoiceModule } from './modules/invoice/invoice.module'; @@ -48,7 +48,7 @@ import { cacheConfig } from './config/cache.config'; PaymentModule, NotificationsModule, EventEmitterModule.forRoot(), - PrintModule, + PrintFormModule, FormBuilderModule, RequestModule, InvoiceModule, diff --git a/src/modules/form-builder/entities/field.entity.ts b/src/modules/form-builder/entities/field.entity.ts index 77e461d..72bed43 100644 --- a/src/modules/form-builder/entities/field.entity.ts +++ b/src/modules/form-builder/entities/field.entity.ts @@ -13,7 +13,7 @@ export class Field extends BaseEntity { options = new Collection(this) // Discriminator column - @Enum(() => EntityType) // Product , Print + @Enum(() => EntityType) // Product , PrintForm entityType: EntityType; // Foreign key based on entityType diff --git a/src/modules/form-builder/form-builder.module.ts b/src/modules/form-builder/form-builder.module.ts index 7652b43..f12b3a6 100644 --- a/src/modules/form-builder/form-builder.module.ts +++ b/src/modules/form-builder/form-builder.module.ts @@ -2,7 +2,7 @@ import { forwardRef, Module } from '@nestjs/common'; import { FormBuilderController } from './controller/form-builder.controller'; import { FieldService } from './provider/field.service'; import { FieldOptionService } from './provider/field-option.service'; -import { PrintModule } from '../print/print.module'; +import { PrintFormModule } from '../print-form/print-form.module'; import { FieldRepository } from './repository/field.repository'; import { FieldOptionRepository } from './repository/field-option.repository'; import { JwtModule } from '@nestjs/jwt'; @@ -14,7 +14,7 @@ import { FieldOption } from './entities/field-option.entity'; @Module({ imports: [ MikroOrmModule.forFeature([Field, FieldOption]), - PrintModule, + PrintFormModule, JwtModule.register({}), forwardRef(() => ProductModule), ], diff --git a/src/modules/form-builder/interface/print.ts b/src/modules/form-builder/interface/print.ts index 6700f49..cc3fc8a 100644 --- a/src/modules/form-builder/interface/print.ts +++ b/src/modules/form-builder/interface/print.ts @@ -10,5 +10,5 @@ export enum FieldType { export enum EntityType { product = 'product', - print = 'print', + printForm = 'print', } \ No newline at end of file diff --git a/src/modules/form-builder/provider/field.service.ts b/src/modules/form-builder/provider/field.service.ts index 3514b93..abdc36a 100644 --- a/src/modules/form-builder/provider/field.service.ts +++ b/src/modules/form-builder/provider/field.service.ts @@ -7,9 +7,9 @@ import { CreateFieldDto } from '../dto/create-field.dto'; import { UpdateFieldDto } from '../dto/update-field.dto'; import { EntityType } from '../interface/print'; import { Product } from 'src/modules/product/entities/product.entity'; -import { Print } from 'src/modules/print/entities/print.entity'; +import { PrintForm } from 'src/modules/print-form/entities/print-form.entity'; import { ProductService } from 'src/modules/product/providers/product.service'; -import { PrintService } from 'src/modules/print/provider/print.service'; +import { PrintFormService } from 'src/modules/print-form/provider/print-form.service'; import { FindFieldsGroupDto } from '../dto/find-field-group.dto'; @@ -19,19 +19,19 @@ export class FieldService { constructor( private readonly fieldRepository: FieldRepository, private readonly productService: ProductService, - private readonly printService: PrintService, + private readonly printFormService: PrintFormService, private readonly em: EntityManager, ) { } async create(entityId: string, dto: CreateFieldDto) { const { entityType, isRequired, multiple, name, type, order } = dto - let entity: null | Product | Print = null + let entity: null | Product | PrintForm = null if (entityType == EntityType.product) { entity = await this.productService.findOneOrFail(entityId) - } else if (entityType == EntityType.print) { - entity = await this.printService.finOrFail(entityId) + } else if (entityType == EntityType.printForm) { + entity = await this.printFormService.finOrFail(entityId) } if (!entity) { diff --git a/src/modules/print/controller/print.controller.ts b/src/modules/print-form/controller/print-form.controller.ts similarity index 81% rename from src/modules/print/controller/print.controller.ts rename to src/modules/print-form/controller/print-form.controller.ts index 8477171..3aca54f 100644 --- a/src/modules/print/controller/print.controller.ts +++ b/src/modules/print-form/controller/print-form.controller.ts @@ -1,5 +1,5 @@ import { Controller, Get, Post, Body, Patch, Param, Delete, UseGuards, Res } from '@nestjs/common'; -import { PrintService } from '../provider/print.service'; +import { PrintFormService } from '../provider/print-form.service'; import { CreateSectionDto } from '../dto/create-section.dto'; import { ApiBearerAuth, ApiOperation } from '@nestjs/swagger'; import { AdminAuthGuard } from '../../auth/guards/adminAuth.guard'; @@ -12,9 +12,9 @@ import type { FastifyReply } from 'fastify'; @Controller('admin') @UseGuards(AdminAuthGuard) @ApiBearerAuth() -export class PrintController { +export class PrintFormController { constructor( - private readonly printService: PrintService, + private readonly printFormService: PrintFormService, ) { } /*================================ Section ========================== */ @@ -23,35 +23,35 @@ export class PrintController { @Permissions(PermissionEnum.VIEW_PRINT) @ApiOperation({ summary: 'Create section' }) create(@Body() dto: CreateSectionDto) { - return this.printService.create(dto); + return this.printFormService.create(dto); } @Get('section') @ApiOperation({ summary: 'find all section' }) @Permissions(PermissionEnum.VIEW_PRINT) findAll() { - return this.printService.findAll(); + return this.printFormService.findAll(); } @Get('section/:id') @ApiOperation({ summary: 'Find one section' }) @Permissions(PermissionEnum.VIEW_PRINT) findOne(@Param('id') id: string) { - return this.printService.finOrFail(id); + return this.printFormService.finOrFail(id); } @Patch('section/:id') @Permissions(PermissionEnum.VIEW_PRINT) @ApiOperation({ summary: 'Update section' }) update(@Param('id') id: string, @Body() dto: UpdateSectionDto) { - return this.printService.update(id, dto); + return this.printFormService.update(id, dto); } @Delete('section/:id') @Permissions(PermissionEnum.VIEW_PRINT) @ApiOperation({ summary: 'Remove section' }) remove(@Param('id') id: string) { - return this.printService.remove(id); + return this.printFormService.remove(id); } /// front end must send form with its selected fields @@ -68,7 +68,7 @@ export class PrintController { `; - const pdfBuffer = await this.printService.generatePdf(html); + const pdfBuffer = await this.printFormService.generatePdf(html); res .header('Content-Type', 'application/pdf') diff --git a/src/modules/print/dto/create-section.dto.ts b/src/modules/print-form/dto/create-section.dto.ts similarity index 100% rename from src/modules/print/dto/create-section.dto.ts rename to src/modules/print-form/dto/create-section.dto.ts diff --git a/src/modules/print/dto/update-section.dto.ts b/src/modules/print-form/dto/update-section.dto.ts similarity index 100% rename from src/modules/print/dto/update-section.dto.ts rename to src/modules/print-form/dto/update-section.dto.ts diff --git a/src/modules/print/entities/print.entity.ts b/src/modules/print-form/entities/print-form.entity.ts similarity index 88% rename from src/modules/print/entities/print.entity.ts rename to src/modules/print-form/entities/print-form.entity.ts index b84064c..ab5b161 100644 --- a/src/modules/print/entities/print.entity.ts +++ b/src/modules/print-form/entities/print-form.entity.ts @@ -3,7 +3,7 @@ import { BaseEntity } from 'src/common/entities/base.entity'; @Entity({ tableName: 'print' }) -export class Print extends BaseEntity { +export class PrintForm extends BaseEntity { [OptionalProps]?: 'createdAt' | 'deletedAt' @Property() diff --git a/src/modules/print-form/interface/print-form.ts b/src/modules/print-form/interface/print-form.ts new file mode 100644 index 0000000..53ff196 --- /dev/null +++ b/src/modules/print-form/interface/print-form.ts @@ -0,0 +1,6 @@ +import { Field } from "src/modules/form-builder/entities/field.entity"; +import { PrintForm } from "../entities/print-form.entity"; + +export interface PrintFormWithFields extends PrintForm { + fields: Field[]; + } diff --git a/src/modules/print-form/print-form.module.ts b/src/modules/print-form/print-form.module.ts new file mode 100644 index 0000000..206c008 --- /dev/null +++ b/src/modules/print-form/print-form.module.ts @@ -0,0 +1,24 @@ +import { forwardRef, Module } from '@nestjs/common'; +import { PrintFormService } from './provider/print-form.service'; +import { PrintFormController } from './controller/print-form.controller'; +import { MikroOrmModule } from '@mikro-orm/nestjs'; +import { PrintForm } from './entities/print-form.entity'; +import { PrintFormRepository } from './repository/print-form.repository'; +import { JwtModule } from '@nestjs/jwt'; +import { RolesModule } from '../roles/roles.module'; +import { FormBuilderModule } from '../form-builder/form-builder.module'; + + +@Module({ + controllers: [PrintFormController], + providers: [PrintFormService, + PrintFormRepository], + exports: [PrintFormService, + PrintFormRepository], + imports: [ + forwardRef(()=>FormBuilderModule), + MikroOrmModule.forFeature([PrintForm]), + RolesModule, JwtModule.register({}), + ] +}) +export class PrintFormModule { } diff --git a/src/modules/print/provider/print.service.ts b/src/modules/print-form/provider/print-form.service.ts similarity index 56% rename from src/modules/print/provider/print.service.ts rename to src/modules/print-form/provider/print-form.service.ts index 3fda12a..d36bb4a 100644 --- a/src/modules/print/provider/print.service.ts +++ b/src/modules/print-form/provider/print-form.service.ts @@ -1,20 +1,20 @@ import { forwardRef, Inject, Injectable, NotFoundException } from '@nestjs/common'; import { EntityManager } from '@mikro-orm/postgresql'; import { RequiredEntityData } from '@mikro-orm/core'; -import { PrintRepository } from '../repository/print.repository'; +import { PrintFormRepository } from '../repository/print-form.repository'; import { CreateSectionDto } from '../dto/create-section.dto'; -import { Print } from '../entities/print.entity'; +import { PrintForm } from '../entities/print-form.entity'; import { UpdateSectionDto } from '../dto/update-section.dto'; import { FieldService } from 'src/modules/form-builder/provider/field.service'; -import { PrintWithFields } from '../interface/print'; +import { PrintFormWithFields } from '../interface/print-form'; // import * as puppeteer from 'puppeteer'; @Injectable() -export class PrintService { +export class PrintFormService { constructor( - private readonly printRepository: PrintRepository, + private readonly printFormRepository: PrintFormRepository, @Inject(forwardRef(() => FieldService)) private readonly fieldService: FieldService, private readonly em: EntityManager, @@ -22,33 +22,33 @@ export class PrintService { async create(dto: CreateSectionDto) { - const data: RequiredEntityData = { + const data: RequiredEntityData = { title: dto.title, order: dto.order, }; - const print = this.printRepository.create(data) + const printForm = this.printFormRepository.create(data) - await this.em.persistAndFlush(print) + await this.em.persistAndFlush(printForm) - return print + return printForm } async update(sectionId: string, dto: UpdateSectionDto) { - const print = await this.finOrFail(sectionId) + const printForm = await this.finOrFail(sectionId) - this.printRepository.assign(print, dto) + this.printFormRepository.assign(printForm, dto) - this.em.persistAndFlush(print) + this.em.persistAndFlush(printForm) - return print + return printForm } - async findAll(): Promise { - const sections = await this.printRepository.findAll({ orderBy: { order: 'ASC' } }); + async findAll(): Promise { + const sections = await this.printFormRepository.findAll({ orderBy: { order: 'ASC' } }); const promises = sections.map(async (section) => { const fields = await this.fieldService.findAll(section.id) @@ -63,23 +63,23 @@ export class PrintService { async remove(id: string): Promise { - const print = await this.finOrFail(id); + const printForm = await this.finOrFail(id); - print.deletedAt = new Date(); + printForm.deletedAt = new Date(); - return await this.em.persistAndFlush(print); + return await this.em.persistAndFlush(printForm); } // ============== Helpers ========== - async finOrFail(printId: string) { - const printSection = await this.printRepository.findOne({ id: printId }) + async finOrFail(printFormId: string) { + const printFormSection = await this.printFormRepository.findOne({ id: printFormId }) - if (!printSection) { - throw new NotFoundException('printSection not found'); + if (!printFormSection) { + throw new NotFoundException('printFormSection not found'); } - return printSection + return printFormSection } async generatePdf(html: string): Promise { diff --git a/src/modules/print/repository/print.repository.ts b/src/modules/print-form/repository/print-form.repository.ts similarity index 54% rename from src/modules/print/repository/print.repository.ts rename to src/modules/print-form/repository/print-form.repository.ts index 231ba40..2dd7324 100644 --- a/src/modules/print/repository/print.repository.ts +++ b/src/modules/print-form/repository/print-form.repository.ts @@ -1,11 +1,11 @@ import { Injectable } from '@nestjs/common'; import { EntityManager, EntityRepository } from '@mikro-orm/postgresql'; -import { Print } from '../entities/print.entity'; +import { PrintForm } from '../entities/print-form.entity'; @Injectable() -export class PrintRepository extends EntityRepository { +export class PrintFormRepository extends EntityRepository { constructor(readonly em: EntityManager) { - super(em, Print); + super(em, PrintForm); } } diff --git a/src/modules/print/interface/print.ts b/src/modules/print/interface/print.ts deleted file mode 100644 index 21c5879..0000000 --- a/src/modules/print/interface/print.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { Field } from "src/modules/form-builder/entities/field.entity"; -import { Print } from "../entities/print.entity"; - -export interface PrintWithFields extends Print { - fields: Field[]; - } \ No newline at end of file diff --git a/src/modules/print/print.module.ts b/src/modules/print/print.module.ts deleted file mode 100644 index d0b7efa..0000000 --- a/src/modules/print/print.module.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { forwardRef, Module } from '@nestjs/common'; -import { PrintService } from './provider/print.service'; -import { PrintController } from './controller/print.controller'; -import { MikroOrmModule } from '@mikro-orm/nestjs'; -import { Print } from './entities/print.entity'; -import { PrintRepository } from './repository/print.repository'; -import { JwtModule } from '@nestjs/jwt'; -import { RolesModule } from '../roles/roles.module'; -import { FormBuilderModule } from '../form-builder/form-builder.module'; - - -@Module({ - controllers: [PrintController], - providers: [PrintService, - PrintRepository], - exports: [PrintService, - PrintRepository], - imports: [ - forwardRef(()=>FormBuilderModule), - MikroOrmModule.forFeature([Print]), - RolesModule, JwtModule.register({}), - ] -}) -export class PrintModule { }