690327:1235 Fixing Refactor ADR-019 Naming convention uuid #15
This commit is contained in:
@@ -93,6 +93,16 @@ export class MasterController {
|
|||||||
return this.masterService.deleteDiscipline(id);
|
return this.masterService.deleteDiscipline(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Patch('disciplines/:id')
|
||||||
|
@RequirePermission('master_data.manage')
|
||||||
|
@ApiOperation({ summary: 'Update a discipline' })
|
||||||
|
updateDiscipline(
|
||||||
|
@Param('id', ParseIntPipe) id: number,
|
||||||
|
@Body() dto: Partial<CreateDisciplineDto> & { contractId?: number | string }
|
||||||
|
) {
|
||||||
|
return this.masterService.updateDiscipline(id, dto);
|
||||||
|
}
|
||||||
|
|
||||||
// --- Sub Types ---
|
// --- Sub Types ---
|
||||||
@Get('sub-types')
|
@Get('sub-types')
|
||||||
@ApiOperation({ summary: 'Get all sub-types' })
|
@ApiOperation({ summary: 'Get all sub-types' })
|
||||||
|
|||||||
@@ -206,6 +206,25 @@ export class MasterService {
|
|||||||
return { deleted: true };
|
return { deleted: true };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async updateDiscipline(
|
||||||
|
id: number,
|
||||||
|
dto: Partial<CreateDisciplineDto> & { contractId?: number | string }
|
||||||
|
) {
|
||||||
|
const discipline = await this.disciplineRepo.findOne({ where: { id } });
|
||||||
|
if (!discipline)
|
||||||
|
throw new NotFoundException(`Discipline ID ${id} not found`);
|
||||||
|
|
||||||
|
// Resolve contractId if provided
|
||||||
|
if (dto.contractId) {
|
||||||
|
dto.contractId = await this.uuidResolver.resolveContractId(
|
||||||
|
dto.contractId
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Object.assign(discipline, dto);
|
||||||
|
return this.disciplineRepo.save(discipline);
|
||||||
|
}
|
||||||
|
|
||||||
// =================================================================
|
// =================================================================
|
||||||
// 📑 Sub-Types Logic
|
// 📑 Sub-Types Logic
|
||||||
// =================================================================
|
// =================================================================
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ export default function EditTemplatePage() {
|
|||||||
const { data: disciplines = [] } = useDisciplines(contractId);
|
const { data: disciplines = [] } = useDisciplines(contractId);
|
||||||
|
|
||||||
const selectedProjectName =
|
const selectedProjectName =
|
||||||
projects.find((p: { id?: number; publicId?: string; projectCode: string; projectName: string }) =>
|
(projects as Array<{ id?: number; publicId?: string; projectCode: string; projectName: string }>).find((p) =>
|
||||||
String(p.publicId ?? p.id) === String(projectId))
|
String(p.publicId ?? p.id) === String(projectId))
|
||||||
?.projectName || 'LCBP3';
|
?.projectName || 'LCBP3';
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ export default function NewTemplatePage() {
|
|||||||
const { data: disciplines = [] } = useDisciplines(contractId);
|
const { data: disciplines = [] } = useDisciplines(contractId);
|
||||||
|
|
||||||
const selectedProjectName =
|
const selectedProjectName =
|
||||||
projects.find((p: { id?: number; publicId?: string; projectName: string }) =>
|
(projects as Array<{ id?: number; publicId?: string; projectName: string }>).find((p) =>
|
||||||
String(p.publicId ?? p.id) === String(projectId))?.projectName || 'LCBP3';
|
String(p.publicId ?? p.id) === String(projectId))?.projectName || 'LCBP3';
|
||||||
|
|
||||||
const handleSave = async (data: Partial<NumberingTemplate>) => {
|
const handleSave = async (data: Partial<NumberingTemplate>) => {
|
||||||
|
|||||||
@@ -33,12 +33,12 @@ import {
|
|||||||
import { Skeleton } from '@/components/ui/skeleton';
|
import { Skeleton } from '@/components/ui/skeleton';
|
||||||
|
|
||||||
interface Project {
|
interface Project {
|
||||||
publicId: string; // ADR-019: uuid exposed as 'publicId'
|
publicId: string;
|
||||||
projectCode: string;
|
projectCode: string;
|
||||||
projectName: string;
|
projectName: string;
|
||||||
isActive: boolean;
|
isActive: boolean;
|
||||||
createdAt: string;
|
createdAt?: string;
|
||||||
updatedAt: string;
|
updatedAt?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
const projectSchema = z.object({
|
const projectSchema = z.object({
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ export default function DrawingsPage() {
|
|||||||
)}
|
)}
|
||||||
</SelectTrigger>
|
</SelectTrigger>
|
||||||
<SelectContent>
|
<SelectContent>
|
||||||
{projects.map((project: { id?: number; publicId?: string; projectName: string; projectCode: string }) => (
|
{(projects as Array<{ id?: number; publicId?: string; projectName: string; projectCode: string }>).map((project) => (
|
||||||
<SelectItem key={project.publicId || project.id} value={String(project.publicId || project.id)}>
|
<SelectItem key={project.publicId || project.id} value={String(project.publicId || project.id)}>
|
||||||
{project.projectCode} - {project.projectName}
|
{project.projectCode} - {project.projectName}
|
||||||
</SelectItem>
|
</SelectItem>
|
||||||
|
|||||||
@@ -4,6 +4,15 @@ import { CreateProjectDto, UpdateProjectDto, SearchProjectDto } from '@/types/dt
|
|||||||
import { toast } from 'sonner';
|
import { toast } from 'sonner';
|
||||||
import { getApiErrorMessage } from '@/types/api-error';
|
import { getApiErrorMessage } from '@/types/api-error';
|
||||||
|
|
||||||
|
export interface Project {
|
||||||
|
publicId: string;
|
||||||
|
projectCode: string;
|
||||||
|
projectName: string;
|
||||||
|
isActive: boolean;
|
||||||
|
createdAt?: string;
|
||||||
|
updatedAt?: string;
|
||||||
|
}
|
||||||
|
|
||||||
export const projectKeys = {
|
export const projectKeys = {
|
||||||
all: ['projects'] as const,
|
all: ['projects'] as const,
|
||||||
list: (params: SearchProjectDto) => [...projectKeys.all, 'list', params] as const,
|
list: (params: SearchProjectDto) => [...projectKeys.all, 'list', params] as const,
|
||||||
@@ -11,7 +20,7 @@ export const projectKeys = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export function useProjects(params?: SearchProjectDto) {
|
export function useProjects(params?: SearchProjectDto) {
|
||||||
return useQuery({
|
return useQuery<Project[]>({
|
||||||
queryKey: projectKeys.list(params || {}),
|
queryKey: projectKeys.list(params || {}),
|
||||||
queryFn: () => projectService.getAll(params),
|
queryFn: () => projectService.getAll(params),
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user