690327:1118 Fixing Refactor ADR-019 Naming convention uuid #14
CI / CD Pipeline / build (push) Successful in 5m40s
CI / CD Pipeline / deploy (push) Failing after 7m13s

This commit is contained in:
2026-03-27 11:18:04 +07:00
parent 63d906a02a
commit 2eab2e73d6
15 changed files with 319 additions and 201 deletions
@@ -7,13 +7,14 @@ import { ColumnDef } from '@tanstack/react-table';
import { Discipline } from '@/types/master-data';
import { useState } from 'react';
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';
import { Contract, getContractPublicId } from '@/types/contract';
export default function DisciplinesPage() {
const [selectedContractId, setSelectedContractId] = useState<string | null>(null);
const { data: contractsData = [] } = useContracts();
// Ensure we consistently use an array
const contracts = Array.isArray(contractsData) ? contractsData : [];
const contracts = (Array.isArray(contractsData) ? contractsData : []) as Contract[];
const columns: ColumnDef<Discipline>[] = [
{
@@ -56,10 +57,20 @@ export default function DisciplinesPage() {
},
];
const contractOptions = contracts.map((c: { id?: number; publicId?: string; contractCode: string; contractName: string }) => ({
label: `${c.contractName} (${c.contractCode})`,
value: String(c.publicId ?? c.id ?? ''),
}));
const contractOptions = contracts
.map((c) => {
const contractUuid = getContractPublicId(c);
if (!contractUuid) {
return null;
}
return {
label: `${c.contractName} (${c.contractCode})`,
value: contractUuid,
};
})
.filter((option): option is { label: string; value: string } => option !== null);
return (
<div className="p-6">
@@ -84,7 +95,7 @@ export default function DisciplinesPage() {
data as unknown as Parameters<typeof masterDataService.createDiscipline>[0]
)
}
updateFn={(_id, _data) => Promise.reject('Not implemented yet')}
updateFn={(id, data) => masterDataService.updateDiscipline(id, data)}
deleteFn={(id) => masterDataService.deleteDiscipline(id)}
columns={columns}
filters={
@@ -98,11 +109,19 @@ export default function DisciplinesPage() {
</SelectTrigger>
<SelectContent>
<SelectItem value="all">All Contracts</SelectItem>
{contracts.map((c: { id?: number; publicId?: string; contractCode: string; contractName: string }) => (
<SelectItem key={String(c.publicId ?? c.id ?? '')} value={String(c.publicId ?? c.id ?? '')}>
{c.contractName} ({c.contractCode})
</SelectItem>
))}
{contracts.map((c) => {
const contractUuid = getContractPublicId(c);
if (!contractUuid) {
return null;
}
return (
<SelectItem key={contractUuid} value={contractUuid}>
{c.contractName} ({c.contractCode})
</SelectItem>
);
})}
</SelectContent>
</Select>
</div>
@@ -116,19 +135,19 @@ export default function DisciplinesPage() {
options: contractOptions,
},
{
name: 'discipline_code',
name: 'disciplineCode',
label: 'Code',
type: 'text',
required: true,
},
{
name: 'code_name_th',
name: 'codeNameTh',
label: 'Name (TH)',
type: 'text',
required: true,
},
{ name: 'code_name_en', label: 'Name (EN)', type: 'text' },
{ name: 'is_active', label: 'Active', type: 'checkbox' },
{ name: 'codeNameEn', label: 'Name (EN)', type: 'text' },
{ name: 'isActive', label: 'Active', type: 'checkbox' },
]}
/>
</div>
@@ -7,13 +7,14 @@ import { ColumnDef } from '@tanstack/react-table';
import { useState } from 'react';
import { RfaType } from '@/types/master-data';
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';
import { Contract, getContractPublicId } from '@/types/contract';
export default function RfaTypesPage() {
const [selectedContractId, setSelectedContractId] = useState<string | null>(null);
const { data: contractsData = [] } = useContracts();
// Ensure we consistently use an array
const contracts = Array.isArray(contractsData) ? contractsData : [];
const contracts = (Array.isArray(contractsData) ? contractsData : []) as Contract[];
const columns: ColumnDef<RfaType>[] = [
{
@@ -60,10 +61,20 @@ export default function RfaTypesPage() {
},
];
const contractOptions = contracts.map((c: { id?: number; publicId?: string; contract_name?: string; contract_code?: string; contractName?: string; contractCode?: string }) => ({
label: `${c.contractName || c.contract_name} (${c.contractCode || c.contract_code})`,
value: String(c.publicId ?? c.id ?? ''),
}));
const contractOptions = contracts
.map((c) => {
const contractUuid = getContractPublicId(c);
if (!contractUuid) {
return null;
}
return {
label: `${c.contractName} (${c.contractCode})`,
value: contractUuid,
};
})
.filter((option): option is { label: string; value: string } => option !== null);
return (
<div className="p-6">
@@ -99,11 +110,19 @@ export default function RfaTypesPage() {
</SelectTrigger>
<SelectContent>
<SelectItem value="all">All Contracts</SelectItem>
{contracts.map((c: { id?: number; publicId?: string; contract_name?: string; contract_code?: string; contractName?: string; contractCode?: string }) => (
<SelectItem key={String(c.publicId ?? c.id ?? '')} value={String(c.publicId ?? c.id ?? '')}>
{c.contractName || c.contract_name} ({c.contractCode || c.contract_code})
</SelectItem>
))}
{contracts.map((c) => {
const contractUuid = getContractPublicId(c);
if (!contractUuid) {
return null;
}
return (
<SelectItem key={contractUuid} value={contractUuid}>
{c.contractName} ({c.contractCode})
</SelectItem>
);
})}
</SelectContent>
</Select>
</div>