feat: Goa GEL Blockchain e-Licensing Platform - Full Stack Implementation
Complete implementation of the Goa Government e-Licensing platform with: Backend: - NestJS API with JWT authentication - PostgreSQL database with Knex ORM - Redis caching and session management - MinIO document storage - Hyperledger Besu blockchain integration - Multi-department workflow system - Comprehensive API tests (266/282 passing) Frontend: - Angular 21 with standalone components - Angular Material + TailwindCSS UI - Visual workflow builder - Document upload with progress tracking - Blockchain explorer integration - Role-based dashboards (Admin, Department, Citizen) - E2E tests with Playwright (37 tests) Infrastructure: - Docker Compose orchestration - Blockscout blockchain explorer - Development and production configurations
This commit is contained in:
42
backend/src/modules/departments/dto/update-department.dto.ts
Normal file
42
backend/src/modules/departments/dto/update-department.dto.ts
Normal file
@@ -0,0 +1,42 @@
|
||||
import { PartialType } from '@nestjs/swagger';
|
||||
import { CreateDepartmentDto } from './create-department.dto';
|
||||
import {
|
||||
IsString,
|
||||
Matches,
|
||||
MinLength,
|
||||
IsOptional,
|
||||
IsUrl,
|
||||
IsEmail,
|
||||
} from 'class-validator';
|
||||
import { ApiProperty } from '@nestjs/swagger';
|
||||
|
||||
export class UpdateDepartmentDto extends PartialType(CreateDepartmentDto) {
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
@Matches(/^[A-Z_]+$/, {
|
||||
message: 'Department code must contain only uppercase letters and underscores',
|
||||
})
|
||||
@MinLength(3)
|
||||
code?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
@MinLength(3)
|
||||
name?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
description?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsEmail()
|
||||
contactEmail?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
contactPhone?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsUrl()
|
||||
webhookUrl?: string;
|
||||
}
|
||||
Reference in New Issue
Block a user