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);
|
||||
}
|
||||
|
||||
@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 ---
|
||||
@Get('sub-types')
|
||||
@ApiOperation({ summary: 'Get all sub-types' })
|
||||
|
||||
@@ -206,6 +206,25 @@ export class MasterService {
|
||||
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
|
||||
// =================================================================
|
||||
|
||||
@@ -32,7 +32,7 @@ export default function EditTemplatePage() {
|
||||
const { data: disciplines = [] } = useDisciplines(contractId);
|
||||
|
||||
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))
|
||||
?.projectName || 'LCBP3';
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ export default function NewTemplatePage() {
|
||||
const { data: disciplines = [] } = useDisciplines(contractId);
|
||||
|
||||
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';
|
||||
|
||||
const handleSave = async (data: Partial<NumberingTemplate>) => {
|
||||
|
||||
@@ -33,12 +33,12 @@ import {
|
||||
import { Skeleton } from '@/components/ui/skeleton';
|
||||
|
||||
interface Project {
|
||||
publicId: string; // ADR-019: uuid exposed as 'publicId'
|
||||
publicId: string;
|
||||
projectCode: string;
|
||||
projectName: string;
|
||||
isActive: boolean;
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
createdAt?: string;
|
||||
updatedAt?: string;
|
||||
}
|
||||
|
||||
const projectSchema = z.object({
|
||||
|
||||
@@ -40,7 +40,7 @@ export default function DrawingsPage() {
|
||||
)}
|
||||
</SelectTrigger>
|
||||
<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)}>
|
||||
{project.projectCode} - {project.projectName}
|
||||
</SelectItem>
|
||||
|
||||
@@ -4,6 +4,15 @@ import { CreateProjectDto, UpdateProjectDto, SearchProjectDto } from '@/types/dt
|
||||
import { toast } from 'sonner';
|
||||
import { getApiErrorMessage } from '@/types/api-error';
|
||||
|
||||
export interface Project {
|
||||
publicId: string;
|
||||
projectCode: string;
|
||||
projectName: string;
|
||||
isActive: boolean;
|
||||
createdAt?: string;
|
||||
updatedAt?: string;
|
||||
}
|
||||
|
||||
export const projectKeys = {
|
||||
all: ['projects'] as const,
|
||||
list: (params: SearchProjectDto) => [...projectKeys.all, 'list', params] as const,
|
||||
@@ -11,7 +20,7 @@ export const projectKeys = {
|
||||
};
|
||||
|
||||
export function useProjects(params?: SearchProjectDto) {
|
||||
return useQuery({
|
||||
return useQuery<Project[]>({
|
||||
queryKey: projectKeys.list(params || {}),
|
||||
queryFn: () => projectService.getAll(params),
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user