add dpage permission

This commit is contained in:
2026-03-12 22:54:03 +03:30
parent deb7610c5c
commit 584e4d7981
5 changed files with 47 additions and 0 deletions
@@ -0,0 +1,14 @@
import { MigrationInterface, QueryRunner } from "typeorm";
export class AddCountToPlan1773307633674 implements MigrationInterface {
name = 'AddCountToPlan1773307633674'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "subscription_plan" ADD "count" integer`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "subscription_plan" DROP COLUMN "count"`);
}
}
@@ -0,0 +1,20 @@
import { MigrationInterface, QueryRunner } from "typeorm";
export class DpagePermissionAdded1773343159070 implements MigrationInterface {
name = 'DpagePermissionAdded1773343159070'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TYPE "public"."permission_name_enum" RENAME TO "permission_name_enum_old"`);
await queryRunner.query(`CREATE TYPE "public"."permission_name_enum" AS ENUM('services', 'customers', 'agents', 'developers', 'invoices', 'transactions', 'discounts', 'admins', 'tickets', 'criticisms', 'contacts_us', 'advertisements', 'announcements', 'blogs', 'learnings', 'logs', 'settings', 'bank_accounts', 'payments', 'manage_sso_clients', 'support_plan', 'dmenu', 'dkala', 'dpage')`);
await queryRunner.query(`ALTER TABLE "permission" ALTER COLUMN "name" TYPE "public"."permission_name_enum" USING "name"::"text"::"public"."permission_name_enum"`);
await queryRunner.query(`DROP TYPE "public"."permission_name_enum_old"`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`CREATE TYPE "public"."permission_name_enum_old" AS ENUM('services', 'customers', 'agents', 'developers', 'invoices', 'transactions', 'discounts', 'admins', 'tickets', 'criticisms', 'contacts_us', 'advertisements', 'announcements', 'blogs', 'learnings', 'logs', 'settings', 'bank_accounts', 'payments', 'manage_sso_clients', 'support_plan', 'dmenu', 'dkala')`);
await queryRunner.query(`ALTER TABLE "permission" ALTER COLUMN "name" TYPE "public"."permission_name_enum_old" USING "name"::"text"::"public"."permission_name_enum_old"`);
await queryRunner.query(`DROP TYPE "public"."permission_name_enum"`);
await queryRunner.query(`ALTER TYPE "public"."permission_name_enum_old" RENAME TO "permission_name_enum"`);
}
}
+9
View File
@@ -5,6 +5,9 @@ import { UserDec } from '../../common/decorators/user.decorator';
import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger';
import { AuthGuards } from '../../common/decorators/auth-guard.decorator';
import { FindBusinessesDto } from './dto/find-businesses.dto';
import { AdminRoute } from '../../common/decorators/admin.decorator';
import { PermissionsDec } from '../../common/decorators/permission.decorator';
import { PermissionEnum } from '../users/enums/permission.enum';
@Controller('dpage')
@ApiTags('d-page')
@@ -13,13 +16,19 @@ import { FindBusinessesDto } from './dto/find-businesses.dto';
export class DpageController {
constructor(private readonly dpageService: DPageService) { }
//----------- user routes ------------------
@Post('login')
@ApiOperation({ summary: 'direct login' })
login(@Body() dto: LoginDto, @UserDec("id") userId: string) {
return this.dpageService.loginToDpage(dto, userId);
}
//------------------admin routes ------------------
@Get('business/list')
@AdminRoute()
@PermissionsDec(PermissionEnum.DMENU)
findAll(@Query() dto: FindBusinessesDto) {
return this.dpageService.findAll(dto);
}
@@ -19,6 +19,9 @@ export class SubscriptionPlan extends BaseEntity {
@Column({ type: "int", nullable: false })
duration: number;
@Column({ type: "int", nullable: true }) // برای پلن هایی که غیر زمانی هستن مثلا دی پیج
count?: number;
@Column({ type: "boolean", default: false })
isFree: boolean;
@@ -22,4 +22,5 @@ export enum PermissionEnum {
SUPPORT_PLAN = "support_plan",
DMENU = "dmenu",
DKALA = "dkala",
DPAGE = "dpage"
}