@@ -15,6 +15,7 @@ import { dataModelsQueryKeys } from 'utils/queryKeys';
1515import { useTranslation } from 'react-i18next' ;
1616import './DataModels.scss' ;
1717import { configureDataModel , deleteDataModel , deployDataModel , getDataModelMetadata , getProductionDataModel } from 'services/datamodels' ;
18+ import { getAllDatasetVersions } from 'services/datasets' ;
1819import { use } from 'i18next' ;
1920import { set } from 'date-fns' ;
2021import { areArraysEqual } from 'utils/commonUtilts' ;
@@ -41,6 +42,11 @@ const ConfigureDataModel: FC = () => {
4142 queryFn : ( ) => getProductionDataModel ( ) ,
4243 } ) ;
4344
45+ const { data : datasetVersions } = useQuery ( {
46+ queryKey : dataModelsQueryKeys . DATA_MODEL_DEPLOYMENT_ENVIRONMENTS ( ) ,
47+ queryFn : ( ) => getAllDatasetVersions ( ) ,
48+ } ) ;
49+
4450 const [ initialData , setInitialData ] = useState < Partial < DataModel > > ( {
4551 modelName : modelMetadata ?. modelName ,
4652 datasetId : modelMetadata ?. connectedDsId ,
@@ -85,6 +91,22 @@ const ConfigureDataModel: FC = () => {
8591 name : keyof DataModel ,
8692 value : any
8793 ) => {
94+ // Update version when dataset is changed
95+ if ( name === 'datasetId' && value && datasetVersions ) {
96+ const selectedDataset = datasetVersions . find (
97+ ( dataset : any ) => dataset . id . toString ( ) === value
98+ ) ;
99+ if ( selectedDataset ?. version ) {
100+ setDataModel ( ( prevDataModel ) => ( {
101+ ...prevDataModel ,
102+ [ name ] : value ,
103+ version : selectedDataset . version ,
104+ } ) ) ;
105+ return ; // Early return to avoid the second setDataModel call
106+ }
107+ }
108+
109+ // Default case - just update the field
88110 setDataModel ( ( prevDataModel ) => ( {
89111 ...prevDataModel ,
90112 [ name ] : value ,
@@ -185,17 +207,24 @@ const ConfigureDataModel: FC = () => {
185207 return undefined ;
186208 } ;
187209
188- const buildUpdatedPayload = ( updateType : string | undefined ) => ( {
189- modelGroupKey : modelMetadata . modelGroupKey ?? "" ,
190- modelName : dataModel . modelName ?? "" ,
191- connectedDsId : Number ( dataModel . datasetId ) ?? 0 ,
192- deploymentEnv : dataModel . deploymentEnvironment ?? "" ,
193- baseModels : dataModel . baseModels ?? [ ] ,
194- connectedDsMajorVersion : Number ( dataModel . version ?. split ( '.' ) [ 0 ] ?. [ 1 ] ) ?? 0 ,
195- connectedDsMinorVersion : Number ( dataModel . version ?. split ( '.' ) [ 1 ] ) ?? 0 ,
196- updateType : updateType ?? "" ,
197- isTrainingNeeded : ! areArraysEqual ( initialData . baseModels as string [ ] , dataModel . baseModels as string [ ] )
198- } ) ;
210+ const buildUpdatedPayload = ( updateType : string | undefined ) => {
211+ // Parse version correctly - version format is "V1.0"
212+ const versionParts = dataModel . version ?. split ( '.' ) ;
213+ const majorVersion = versionParts ?. [ 0 ] ?. substring ( 1 ) ; // Remove 'V' prefix
214+ const minorVersion = versionParts ?. [ 1 ] ;
215+
216+ return {
217+ modelGroupKey : modelMetadata . modelGroupKey ?? "" ,
218+ modelName : dataModel . modelName ?? "" ,
219+ connectedDsId : Number ( dataModel . datasetId ) ?? 0 ,
220+ deploymentEnv : dataModel . deploymentEnvironment ?? "" ,
221+ baseModels : dataModel . baseModels ?? [ ] ,
222+ connectedDsMajorVersion : Number ( majorVersion ) ?? 1 ,
223+ connectedDsMinorVersion : Number ( minorVersion ) ?? 0 ,
224+ updateType : updateType ?? "" ,
225+ isTrainingNeeded : ! areArraysEqual ( initialData . baseModels as string [ ] , dataModel . baseModels as string [ ] )
226+ } ;
227+ } ;
199228
200229 const deleteDataModelMutation = useMutation ( {
201230 mutationFn : deleteDataModel ,
@@ -288,6 +317,7 @@ const ConfigureDataModel: FC = () => {
288317 }
289318 handleChange = { handleDataModelAttributesChange }
290319 type = "configure"
320+ datasetVersions = { datasetVersions }
291321 />
292322 ) }
293323 </ div >
0 commit comments