implement configurable menu

This commit is contained in:
Roland Schneider
2025-11-20 09:30:35 +01:00
parent 3e2bdaebc6
commit b08663fb28
17 changed files with 256 additions and 57 deletions

View File

@@ -1,8 +1,11 @@
// dvbooking-cli/src/templates/nestjs/entity.ts.tpl
import { Entity, PrimaryGeneratedColumn, Column } from 'typeorm';
import { IsString, IsNumber, IsBoolean, IsDate, IsOptional } from 'class-validator';
@Entity({ name: 'event_type' })
export class EventType {
@PrimaryGeneratedColumn()
id: number;
@@ -20,4 +23,4 @@ export class EventType {
@IsString()
color: string | null;
}
}

View File

@@ -1,8 +1,11 @@
// dvbooking-cli/src/templates/nestjs/entity.ts.tpl
import { Entity, PrimaryGeneratedColumn, Column } from 'typeorm';
import { IsString, IsNumber, IsBoolean, IsDate, IsOptional } from 'class-validator';
@Entity({ name: 'products' })
export class Product {
@PrimaryGeneratedColumn()
id: number;
@@ -20,4 +23,4 @@ export class Product {
@IsBoolean()
is_available: boolean | null = true;
}
}

View File

@@ -1,10 +1,29 @@
import { Controller, Get, Post, Body, Patch, Param, Delete, Query, ParseIntPipe, DefaultValuePipe } from '@nestjs/common';
import {
Controller,
Get,
Post,
Body,
Patch,
Param,
Delete,
Query,
ParseIntPipe,
DefaultValuePipe,
UseGuards,
} from '@nestjs/common';
import { EventTypesService } from './event-type.service';
import { CreateEventTypeDto } from './dto/create-event-type.dto';
import { UpdateEventTypeDto } from './dto/update-event-type.dto';
import { QueryEventTypeDto } from './dto/query-event-type.dto';
import { JwtAuthGuard } from '../auth/jwt-auth.guard';
import { Roles } from '../auth/roles.decorator';
import { Role } from '../auth/role.enum';
import { RolesGuard } from '../auth/roles.guard';
@Controller('event-type')
@UseGuards(JwtAuthGuard, RolesGuard)
@Roles(Role.Admin)
export class EventTypesController {
constructor(private readonly eventTypesService: EventTypesService) {}
@@ -33,7 +52,10 @@ export class EventTypesController {
}
@Patch(':id')
update(@Param('id', ParseIntPipe) id: number, @Body() updateEventTypeDto: UpdateEventTypeDto) {
update(
@Param('id', ParseIntPipe) id: number,
@Body() updateEventTypeDto: UpdateEventTypeDto,
) {
return this.eventTypesService.update(id, updateEventTypeDto);
}

View File

@@ -1,10 +1,29 @@
import { Controller, Get, Post, Body, Patch, Param, Delete, Query, ParseIntPipe, DefaultValuePipe } from '@nestjs/common';
import {
Controller,
Get,
Post,
Body,
Patch,
Param,
Delete,
Query,
ParseIntPipe,
DefaultValuePipe,
UseGuards,
} from '@nestjs/common';
import { ProductsService } from './products.service';
import { CreateProductDto } from './dto/create-product.dto';
import { UpdateProductDto } from './dto/update-product.dto';
import { QueryProductDto } from './dto/query-product.dto';
import { JwtAuthGuard } from '../auth/jwt-auth.guard';
import { Roles } from '../auth/roles.decorator';
import { Role } from '../auth/role.enum';
import { RolesGuard } from '../auth/roles.guard';
@Controller('products')
@UseGuards(JwtAuthGuard, RolesGuard)
@Roles(Role.Admin)
export class ProductsController {
constructor(private readonly productsService: ProductsService) {}
@@ -33,7 +52,10 @@ export class ProductsController {
}
@Patch(':id')
update(@Param('id', ParseIntPipe) id: number, @Body() updateProductDto: UpdateProductDto) {
update(
@Param('id', ParseIntPipe) id: number,
@Body() updateProductDto: UpdateProductDto,
) {
return this.productsService.update(id, updateProductDto);
}
@@ -41,4 +63,4 @@ export class ProductsController {
remove(@Param('id', ParseIntPipe) id: number) {
return this.productsService.remove(id);
}
}
}