vona-module-a-orm 5.0.54 → 5.0.55

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -113,10 +113,12 @@ function __parseRelation(nodeRelation: t.ObjectProperty) {
113
113
  function __parseRelationHasOne(args: t.Node[]) {
114
114
  // classModel
115
115
  const classModel = __parseRelation_classModel(args[0]);
116
+ // key
117
+ const key = __parseRelation_key(args[1]);
116
118
  // options
117
119
  const options = __parseRelation_options(args[2]);
118
120
  // combine
119
- return `IModelRelationHasOne<${classModel}, ${options.autoload}, ${options.columns}>`;
121
+ return `IModelRelationHasOne<${classModel}, '${key}', ${options.autoload}, ${options.columns}>`;
120
122
  }
121
123
 
122
124
  function __parseRelationBelongsTo(args: t.Node[]) {
@@ -133,14 +135,14 @@ function __parseRelationBelongsTo(args: t.Node[]) {
133
135
  function __parseRelationHasMany(args: t.Node[]) {
134
136
  // classModel
135
137
  const classModel = __parseRelation_classModel(args[0]);
136
- // // key
137
- // const key = __parseRelation_key(args[1]);
138
+ // key
139
+ const key = __parseRelation_key(args[1]);
138
140
  // options
139
141
  const options = __parseRelation_options(args[2]);
140
142
  // modelJoins
141
143
  const modelJoins = __parseRelation_modelJoins(args[3]);
142
144
  // combine
143
- return `IModelRelationHasMany<${classModel}, ${options.autoload}, ${options.columns},${modelJoins},${options.aggrs},${options.groups}>`;
145
+ return `IModelRelationHasMany<${classModel}, '${key}', ${options.autoload}, ${options.columns}, ${modelJoins}, ${options.aggrs}, ${options.groups}>`;
144
146
  }
145
147
 
146
148
  function __parseRelationBelongsToMany(args: t.Node[]) {
@@ -237,7 +239,7 @@ function __parseRelation_options(node: t.Node) {
237
239
  if (options?.groups) {
238
240
  columns = 'undefined';
239
241
  } else {
240
- columns = '\'*\'';
242
+ columns = 'undefined'; // '\'*\'';
241
243
  }
242
244
  } else {
243
245
  if (options?.columns.includes('*')) {
package/dist/index.js CHANGED
@@ -2252,6 +2252,49 @@ let ServiceCacheQuery = (_dec$c = Service(), _dec2$c = BeanInfo({
2252
2252
  }
2253
2253
  }) || _class$c) || _class$c);
2254
2254
 
2255
+ function handleRelationsCollection(relationsStatic, includeWrapper) {
2256
+ // collect
2257
+ const relations = [];
2258
+ // include
2259
+ if (relationsStatic) {
2260
+ for (const key in relationsStatic) {
2261
+ const relationDef = relationsStatic[key];
2262
+ const relationCur = includeWrapper?.include?.[key];
2263
+ let relationReal;
2264
+ let includeReal;
2265
+ let withReal;
2266
+ let autoload;
2267
+ if (relationCur === false) {
2268
+ continue;
2269
+ } else if (relationCur === true) {
2270
+ relationReal = relationDef;
2271
+ autoload = relationDef.options?.autoload;
2272
+ } else if (typeof relationCur === 'object') {
2273
+ relationReal = deepExtend({}, relationDef, {
2274
+ options: relationCur
2275
+ });
2276
+ includeReal = relationCur.include;
2277
+ withReal = relationCur.with;
2278
+ } else if (relationDef.options?.autoload) {
2279
+ relationReal = relationDef;
2280
+ autoload = relationDef.options?.autoload;
2281
+ } else {
2282
+ continue;
2283
+ }
2284
+ relations.push([key, relationReal, includeReal, withReal, autoload]);
2285
+ }
2286
+ }
2287
+ // with
2288
+ if (includeWrapper?.with) {
2289
+ for (const key in includeWrapper.with) {
2290
+ const relationReal = includeWrapper.with[key];
2291
+ if (!relationReal) continue;
2292
+ relations.push([key, relationReal, relationReal.options?.include, relationReal.options?.with, false]);
2293
+ }
2294
+ }
2295
+ return relations;
2296
+ }
2297
+
2255
2298
  var _dec$b, _dec2$b, _class$b;
2256
2299
  let ServiceRelations = (_dec$b = Service(), _dec2$b = BeanInfo({
2257
2300
  module: "a-orm"
@@ -2787,43 +2830,7 @@ let ServiceRelations = (_dec$b = Service(), _dec2$b = BeanInfo({
2787
2830
  return this._model.newInstanceTarget(modelClassTarget, meta?.client, meta?.table);
2788
2831
  }
2789
2832
  handleRelationsCollection(includeWrapper) {
2790
- // collect
2791
- const relations = [];
2792
- // include
2793
- if (this._model.options.relations) {
2794
- for (const key in this._model.options.relations) {
2795
- const relationDef = this._model.options.relations[key];
2796
- const relationCur = includeWrapper?.include?.[key];
2797
- let relationReal;
2798
- let includeReal;
2799
- let withReal;
2800
- if (relationCur === false) {
2801
- continue;
2802
- } else if (relationCur === true) {
2803
- relationReal = relationDef;
2804
- } else if (typeof relationCur === 'object') {
2805
- relationReal = deepExtend({}, relationDef, {
2806
- options: relationCur
2807
- });
2808
- includeReal = relationCur.include;
2809
- withReal = relationCur.with;
2810
- } else if (relationDef.options?.autoload) {
2811
- relationReal = relationDef;
2812
- } else {
2813
- continue;
2814
- }
2815
- relations.push([key, relationReal, includeReal, withReal]);
2816
- }
2817
- }
2818
- // with
2819
- if (includeWrapper?.with) {
2820
- for (const key in includeWrapper.with) {
2821
- const relationReal = includeWrapper.with[key];
2822
- if (!relationReal) continue;
2823
- relations.push([key, relationReal, relationReal.options?.include, relationReal.options?.with]);
2824
- }
2825
- }
2826
- return relations;
2833
+ return handleRelationsCollection(this._model.options.relations, includeWrapper);
2827
2834
  }
2828
2835
  }) || _class$b) || _class$b);
2829
2836
 
@@ -3984,7 +3991,6 @@ function _DtoGet_relation_handle(entityClass, relation, mutateTypeTopLevel) {
3984
3991
  include: includeReal,
3985
3992
  with: withReal
3986
3993
  });
3987
- const schemaLazy = _DtoGet_relation_handle_schemaLazy(modelTarget, optionsReal, autoload, mutateTypeTopLevel);
3988
3994
  if (mutateTypeTopLevel) {
3989
3995
  if (type === 'belongsTo') {
3990
3996
  // donot mutate
@@ -3997,13 +4003,17 @@ function _DtoGet_relation_handle(entityClass, relation, mutateTypeTopLevel) {
3997
4003
  deleted: z.boolean().optional()
3998
4004
  }));
3999
4005
  } else if (type === 'hasOne') {
4006
+ const schemaLazy = _DtoGet_relation_handle_schemaLazy(modelTarget, optionsReal, autoload, mutateTypeTopLevel, relation);
4000
4007
  schema = v.lazy(schemaLazy);
4001
4008
  // optional = true;
4002
4009
  } else {
4010
+ // hasMany
4011
+ const schemaLazy = _DtoGet_relation_handle_schemaLazy(modelTarget, optionsReal, autoload, mutateTypeTopLevel, relation);
4003
4012
  schema = v.array(v.lazy(schemaLazy));
4004
4013
  }
4005
4014
  Api.field(v.optional(), schema)(entityClass.prototype, relationName);
4006
4015
  } else {
4016
+ const schemaLazy = _DtoGet_relation_handle_schemaLazy(modelTarget, optionsReal, autoload, mutateTypeTopLevel, relation);
4007
4017
  let schema;
4008
4018
  let optional = false;
4009
4019
  if (type === 'hasOne' || type === 'belongsTo') {
@@ -4026,10 +4036,10 @@ function _DtoGet_relation_handle(entityClass, relation, mutateTypeTopLevel) {
4026
4036
  }
4027
4037
  }
4028
4038
  }
4029
- function _DtoGet_relation_handle_schemaLazy(modelTarget, optionsReal, autoload, mutateTypeTopLevel) {
4039
+ function _DtoGet_relation_handle_schemaLazy(modelTarget, optionsReal, autoload, mutateTypeTopLevel, relation) {
4030
4040
  return () => {
4031
4041
  if (!autoload) {
4032
- return _DtoGet_relation_handle_schemaLazy_raw(modelTarget, optionsReal, mutateTypeTopLevel);
4042
+ return _DtoGet_relation_handle_schemaLazy_raw(modelTarget, optionsReal, mutateTypeTopLevel, relation);
4033
4043
  }
4034
4044
  // dynamic
4035
4045
  const entityClass = getClassEntityFromClassModel(modelTarget);
@@ -4038,16 +4048,16 @@ function _DtoGet_relation_handle_schemaLazy(modelTarget, optionsReal, autoload,
4038
4048
  const dynamicName = `${beanFullName}_${_hashkey}`;
4039
4049
  let entityTarget = getSchemaDynamic(dynamicName);
4040
4050
  if (!entityTarget) {
4041
- entityTarget = _DtoGet_relation_handle_schemaLazy_raw(modelTarget, optionsReal, mutateTypeTopLevel);
4051
+ entityTarget = _DtoGet_relation_handle_schemaLazy_raw(modelTarget, optionsReal, mutateTypeTopLevel, relation);
4042
4052
  entityTarget[SymbolSchemaDynamicRefId] = dynamicName;
4043
4053
  addSchemaDynamic(dynamicName, entityTarget);
4044
4054
  }
4045
4055
  return entityTarget;
4046
4056
  };
4047
4057
  }
4048
- function _DtoGet_relation_handle_schemaLazy_raw(modelTarget, optionsReal, mutateTypeTopLevel) {
4058
+ function _DtoGet_relation_handle_schemaLazy_raw(modelTarget, optionsReal, mutateTypeTopLevel, relation) {
4049
4059
  if (mutateTypeTopLevel) {
4050
- return _DtoMutate_raw(modelTarget, optionsReal, mutateTypeTopLevel, undefined, false); // columnsOmitDefault: undefined
4060
+ return _DtoMutate_raw(modelTarget, optionsReal, mutateTypeTopLevel, undefined, false, relation); // columnsOmitDefault: undefined
4051
4061
  } else {
4052
4062
  if (optionsReal.groups) {
4053
4063
  return DtoGroup(modelTarget, optionsReal.groups, optionsReal.aggrs, optionsReal.columns);
@@ -4071,50 +4081,11 @@ function _DtoGet_relation_handle_schemaLazy_hashkey(optionsReal, mutateTypeTopLe
4071
4081
  }
4072
4082
  function _DtoGet_relations_collection(modelClass, includeWrapper) {
4073
4083
  const beanOptions = appResource.getBean(modelClass);
4074
- const options = beanOptions.options;
4075
- // collect
4076
- const relations = [];
4077
- // include
4078
- if (options.relations) {
4079
- for (const key in options.relations) {
4080
- const relationDef = options.relations[key];
4081
- const relationCur = includeWrapper?.include?.[key];
4082
- let relationReal;
4083
- let includeReal;
4084
- let withReal;
4085
- let autoload;
4086
- if (relationCur === false) {
4087
- continue;
4088
- } else if (relationCur === true) {
4089
- relationReal = relationDef;
4090
- autoload = relationDef.options?.autoload;
4091
- } else if (typeof relationCur === 'object') {
4092
- relationReal = deepExtend({}, relationDef, {
4093
- options: relationCur
4094
- });
4095
- includeReal = relationCur.include;
4096
- withReal = relationCur.with;
4097
- } else if (relationDef.options?.autoload) {
4098
- relationReal = relationDef;
4099
- autoload = relationDef.options?.autoload;
4100
- } else {
4101
- continue;
4102
- }
4103
- relations.push([key, relationReal, includeReal, withReal, autoload]);
4104
- }
4105
- }
4106
- // with
4107
- if (includeWrapper?.with) {
4108
- for (const key in includeWrapper.with) {
4109
- const relationReal = includeWrapper.with[key];
4110
- if (!relationReal) continue;
4111
- relations.push([key, relationReal, relationReal.options?.include, relationReal.options?.with, false]);
4112
- }
4113
- }
4114
- return relations;
4084
+ const options = beanOptions?.options;
4085
+ return handleRelationsCollection(options?.relations, includeWrapper);
4115
4086
  }
4116
4087
 
4117
- function _DtoMutate_raw(modelLike, params, mutateTypeTopLevel, columnsOmitDefault, topLevel) {
4088
+ function _DtoMutate_raw(modelLike, params, mutateTypeTopLevel, columnsOmitDefault, topLevel, relation) {
4118
4089
  // model
4119
4090
  const modelClass = prepareClassModel(modelLike);
4120
4091
  // entity
@@ -4150,13 +4121,23 @@ function _DtoMutate_raw(modelLike, params, mutateTypeTopLevel, columnsOmitDefaul
4150
4121
  if (!topLevel && mutateTypeTopLevel !== 'create') {
4151
4122
  entityClass = $Class.partial(entityClass, ['id', 'deleted']);
4152
4123
  }
4124
+ if (!topLevel && relation) {
4125
+ const [_relationName, relationReal] = relation;
4126
+ const {
4127
+ type,
4128
+ key
4129
+ } = relationReal;
4130
+ if (type === 'hasOne' || type === 'hasMany') {
4131
+ entityClass = $Class.omit(entityClass, key);
4132
+ }
4133
+ }
4153
4134
  // relations
4154
4135
  _DtoGet_relations(modelClass, entityClass, params, mutateTypeTopLevel);
4155
4136
  return entityClass;
4156
4137
  }
4157
4138
 
4158
4139
  function DtoCreate(modelLike, params) {
4159
- return _DtoMutate_raw(modelLike, params, 'create', ['id', 'iid', 'deleted', 'createdAt', 'updatedAt'], true);
4140
+ return _DtoMutate_raw(modelLike, params, 'create', ['id', 'iid', 'deleted', 'createdAt', 'updatedAt'], true, undefined);
4160
4141
  }
4161
4142
 
4162
4143
  function DtoQuery(classRef, keys) {
@@ -4176,7 +4157,7 @@ function DtoSelectAndCount(modelLike, params) {
4176
4157
  }
4177
4158
 
4178
4159
  function DtoUpdate(modelLike, params) {
4179
- return _DtoMutate_raw(modelLike, params, 'update', ['id', 'iid', 'deleted', 'createdAt', 'updatedAt'], true);
4160
+ return _DtoMutate_raw(modelLike, params, 'update', ['id', 'iid', 'deleted', 'createdAt', 'updatedAt'], true, undefined);
4180
4161
  }
4181
4162
 
4182
4163
  // not use Partial/$Class.partial, for form render at frontend
@@ -4,5 +4,6 @@ import type { IDtoMutateParams, TypeDtoMutateResult, TypeDtoMutateType } from '.
4
4
  import type { TypeModelColumnsStrict } from '../../types/modelWhere.ts';
5
5
  import type { IModelClassRecord } from '../../types/onion/model.ts';
6
6
  import type { TypeModelOfModelLike, TypeSymbolKeyEntity } from '../../types/relations.ts';
7
+ import type { IRelationItem } from '../../types/relationsDef.ts';
7
8
  export declare function DtoMutate<ModelLike extends BeanModelMeta | (keyof IModelClassRecord), T extends IDtoMutateParams<ModelLike> | undefined = undefined>(modelLike: ModelLike extends BeanModelMeta ? ((() => Constructable<ModelLike>) | Constructable<ModelLike>) : ModelLike, params?: T): Constructable<TypeDtoMutateResult<ModelLike, T, 'mutate', undefined, true>>;
8
- export declare function _DtoMutate_raw<ModelLike extends BeanModelMeta | (keyof IModelClassRecord), T extends IDtoMutateParams<ModelLike> | undefined = undefined, ColumnsOmitDefault extends TypeModelColumnsStrict<TypeModelOfModelLike<ModelLike>[TypeSymbolKeyEntity]> | undefined = undefined>(modelLike: ModelLike extends BeanModelMeta ? ((() => Constructable<ModelLike>) | Constructable<ModelLike>) : ModelLike, params?: T, mutateTypeTopLevel?: TypeDtoMutateType, columnsOmitDefault?: ColumnsOmitDefault, topLevel?: boolean): any;
9
+ export declare function _DtoMutate_raw<ModelLike extends BeanModelMeta | (keyof IModelClassRecord), T extends IDtoMutateParams<ModelLike> | undefined = undefined, ColumnsOmitDefault extends TypeModelColumnsStrict<TypeModelOfModelLike<ModelLike>[TypeSymbolKeyEntity]> | undefined = undefined>(modelLike: ModelLike extends BeanModelMeta ? ((() => Constructable<ModelLike>) | Constructable<ModelLike>) : ModelLike, params?: T, mutateTypeTopLevel?: TypeDtoMutateType, columnsOmitDefault?: ColumnsOmitDefault, topLevel?: boolean, relation?: IRelationItem): any;
@@ -2,9 +2,9 @@ import type { BeanModelMeta } from '../bean/bean.model/bean.model_meta.ts';
2
2
  import type { IModelClassRecord } from '../types/onion/model.ts';
3
3
  import type { TypeModelClassLike, TypeModelOfModelLike, TypeModelsClassLikeGeneral, TypeSymbolKeyEntity } from '../types/relations.ts';
4
4
  import type { IModelRelationBelongsToDynamic, IModelRelationBelongsToManyDynamic, IModelRelationHasManyDynamic, IModelRelationHasOneDynamic, IModelRelationOptionsManyDynamic, IModelRelationOptionsOneDynamic } from '../types/relationsDefDynamic.ts';
5
- declare function hasOne<MODEL extends BeanModelMeta | (keyof IModelClassRecord), OPTIONS extends IModelRelationOptionsOneDynamic<TypeModelOfModelLike<MODEL>> | undefined = undefined>(classModel: TypeModelClassLike<MODEL>, key: keyof TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity], options?: OPTIONS): IModelRelationHasOneDynamic<MODEL, OPTIONS>;
5
+ declare function hasOne<MODEL extends BeanModelMeta | (keyof IModelClassRecord), KEY extends keyof TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity], OPTIONS extends IModelRelationOptionsOneDynamic<TypeModelOfModelLike<MODEL>> | undefined = undefined>(classModel: TypeModelClassLike<MODEL>, key: KEY, options?: OPTIONS): IModelRelationHasOneDynamic<MODEL, KEY, OPTIONS>;
6
6
  declare function belongsTo<MODELSelf extends BeanModelMeta | (keyof IModelClassRecord), MODEL extends BeanModelMeta | (keyof IModelClassRecord), OPTIONS extends IModelRelationOptionsOneDynamic<TypeModelOfModelLike<MODEL>> | undefined = undefined>(_classModelSelf: TypeModelClassLike<MODELSelf>, classModel: TypeModelClassLike<MODEL>, key: keyof TypeModelOfModelLike<MODELSelf>[TypeSymbolKeyEntity], options?: OPTIONS): IModelRelationBelongsToDynamic<MODELSelf, MODEL, OPTIONS>;
7
- declare function hasMany<MODEL extends BeanModelMeta | (keyof IModelClassRecord), OPTIONS extends IModelRelationOptionsManyDynamic<TypeModelOfModelLike<MODEL>, ModelJoins, Group> | undefined = undefined, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined, Group extends boolean | undefined = undefined>(classModel: TypeModelClassLike<MODEL>, key: keyof TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity], options?: OPTIONS, _modelJoins?: ModelJoins, _group?: Group): IModelRelationHasManyDynamic<MODEL, OPTIONS, ModelJoins, Group>;
7
+ declare function hasMany<MODEL extends BeanModelMeta | (keyof IModelClassRecord), KEY extends keyof TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity], OPTIONS extends IModelRelationOptionsManyDynamic<TypeModelOfModelLike<MODEL>, ModelJoins, Group> | undefined = undefined, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined, Group extends boolean | undefined = undefined>(classModel: TypeModelClassLike<MODEL>, key: KEY, options?: OPTIONS, _modelJoins?: ModelJoins, _group?: Group): IModelRelationHasManyDynamic<MODEL, KEY, OPTIONS, ModelJoins, Group>;
8
8
  declare function belongsToMany<MODELMiddle extends BeanModelMeta | (keyof IModelClassRecord), MODEL extends BeanModelMeta | (keyof IModelClassRecord), OPTIONS extends IModelRelationOptionsManyDynamic<TypeModelOfModelLike<MODEL>, ModelJoins, Group> | undefined = undefined, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined, Group extends boolean | undefined = undefined>(classModelMiddle: TypeModelClassLike<MODELMiddle>, classModel: TypeModelClassLike<MODEL>, keyFrom: keyof TypeModelOfModelLike<MODELMiddle>[TypeSymbolKeyEntity], keyTo: keyof TypeModelOfModelLike<MODELMiddle>[TypeSymbolKeyEntity], options?: OPTIONS, _modelJoins?: ModelJoins, _group?: Group): IModelRelationBelongsToManyDynamic<MODELMiddle, MODEL, OPTIONS, ModelJoins, Group>;
9
9
  export declare const $relationDynamic: {
10
10
  hasOne: typeof hasOne;
@@ -3,8 +3,8 @@ import type { IModelClassRecord } from '../types/onion/model.ts';
3
3
  import type { TypeModelClassLike, TypeModelOfModelLike, TypeSymbolKeyEntity } from '../types/relations.ts';
4
4
  import type { IModelRelationBelongsToManyDynamic, IModelRelationHasManyDynamic, IModelRelationHasOneDynamic } from '../types/relationsDefDynamic.ts';
5
5
  import type { IModelRelationOptionsBelongsToManyMutate, IModelRelationOptionsManyMutate, IModelRelationOptionsOneMutate } from '../types/relationsDefMutate.ts';
6
- declare function hasOne<MODEL extends BeanModelMeta | (keyof IModelClassRecord), OPTIONS extends IModelRelationOptionsOneMutate<TypeModelOfModelLike<MODEL>>>(classModel: TypeModelClassLike<MODEL>, key: keyof TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity], options?: OPTIONS): IModelRelationHasOneDynamic<MODEL, OPTIONS>;
7
- declare function hasMany<MODEL extends BeanModelMeta | (keyof IModelClassRecord), OPTIONS extends IModelRelationOptionsManyMutate<TypeModelOfModelLike<MODEL>>>(classModel: TypeModelClassLike<MODEL>, key: keyof TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity], options?: OPTIONS): IModelRelationHasManyDynamic<MODEL, OPTIONS>;
6
+ declare function hasOne<MODEL extends BeanModelMeta | (keyof IModelClassRecord), KEY extends keyof TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity], OPTIONS extends IModelRelationOptionsOneMutate<TypeModelOfModelLike<MODEL>>>(classModel: TypeModelClassLike<MODEL>, key: KEY, options?: OPTIONS): IModelRelationHasOneDynamic<MODEL, KEY, OPTIONS>;
7
+ declare function hasMany<MODEL extends BeanModelMeta | (keyof IModelClassRecord), KEY extends keyof TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity], OPTIONS extends IModelRelationOptionsManyMutate<TypeModelOfModelLike<MODEL>>>(classModel: TypeModelClassLike<MODEL>, key: KEY, options?: OPTIONS): IModelRelationHasManyDynamic<MODEL, KEY, OPTIONS>;
8
8
  declare function belongsToMany<MODELMiddle extends BeanModelMeta | (keyof IModelClassRecord), MODEL extends BeanModelMeta | (keyof IModelClassRecord), OPTIONS extends IModelRelationOptionsBelongsToManyMutate<TypeModelOfModelLike<MODEL>>>(classModelMiddle: TypeModelClassLike<MODELMiddle>, classModel: TypeModelClassLike<MODEL>, keyFrom: keyof TypeModelOfModelLike<MODELMiddle>[TypeSymbolKeyEntity], keyTo: keyof TypeModelOfModelLike<MODELMiddle>[TypeSymbolKeyEntity], options?: OPTIONS): IModelRelationBelongsToManyDynamic<MODELMiddle, MODEL, OPTIONS>;
9
9
  export declare const $relationMutate: {
10
10
  hasOne: typeof hasOne;
@@ -0,0 +1,3 @@
1
+ import type { IModelRelationIncludeWrapper } from '../types/model.ts';
2
+ import type { IRelationItem } from '../types/relationsDef.ts';
3
+ export declare function handleRelationsCollection(relationsStatic?: Record<string, any>, includeWrapper?: IModelRelationIncludeWrapper): IRelationItem[];
@@ -4,7 +4,7 @@ import type { BeanModelMeta } from '../../bean/bean.model/bean.model_meta.ts';
4
4
  import type { IModelRelationIncludeWrapper } from '../model.ts';
5
5
  import type { TypeModelColumnsStrict } from '../modelWhere.ts';
6
6
  import type { IDecoratorModelOptions, IModelClassRecord } from '../onion/model.ts';
7
- import type { TypeModelOfModelLike, TypeSymbolKeyEntity, TypeUtilEntityOmit, TypeUtilEntityPartial, TypeUtilEntitySelector, TypeUtilGetColumnsFromRelationAndIncludeWrapper, TypeUtilGetModelOptions, TypeUtilGetParamsColumns, TypeUtilGetParamsInlcude, TypeUtilGetParamsWith, TypeUtilGetRelationEntity, TypeUtilGetRelationModel, TypeUtilGetRelationOptions, TypeUtilGetRelationOptionsAutoload, TypeUtilGetRelationType, TypeUtilPrepareColumns } from '../relations.ts';
7
+ import type { TypeModelOfModelLike, TypeSymbolKeyEntity, TypeUtilEntityOmit, TypeUtilEntityPartial, TypeUtilEntitySelector, TypeUtilGetColumnsFromRelationAndIncludeWrapper, TypeUtilGetModelOptions, TypeUtilGetParamsColumns, TypeUtilGetParamsInlcude, TypeUtilGetParamsWith, TypeUtilGetRelationEntity, TypeUtilGetRelationKey, TypeUtilGetRelationModel, TypeUtilGetRelationOptions, TypeUtilGetRelationOptionsAutoload, TypeUtilGetRelationType, TypeUtilPrepareColumns } from '../relations.ts';
8
8
  export type TypeDtoMutateType = 'create' | 'update' | 'mutate';
9
9
  export type IDtoMutateParams<ModelLike extends BeanModelMeta | (keyof IModelClassRecord)> = IBuildDtoMutateParams<TypeModelOfModelLike<ModelLike>[TypeSymbolKeyEntity], TypeModelOfModelLike<ModelLike>>;
10
10
  export interface IBuildDtoMutateParams<TRecord, Model extends BeanModelMeta> extends IModelRelationIncludeWrapper<Model>, IBuildDtoMutateParamsBasic<TRecord> {
@@ -13,7 +13,7 @@ export interface IBuildDtoMutateParamsBasic<TRecord> {
13
13
  columns?: TypeModelColumnsStrict<TRecord>;
14
14
  }
15
15
  export type TypeDtoMutateResult<ModelLike extends BeanModelMeta | (keyof IModelClassRecord), TOptionsRelation, TMutateTypeTopLevel extends TypeDtoMutateType, TColumnsOmitDefault extends string | string[] | undefined = undefined, TTopLevel extends boolean | undefined = undefined> = TypeDtoMutateRelationResult<TypeModelOfModelLike<ModelLike>[TypeSymbolKeyEntity], TypeModelOfModelLike<ModelLike>, TOptionsRelation, TMutateTypeTopLevel, TColumnsOmitDefault, TTopLevel>;
16
- export type TypeDtoMutateRelationResult<TRecord, TModel extends BeanModelMeta | undefined, TOptionsRelation, TMutateTypeTopLevel extends TypeDtoMutateType, TColumnsOmitDefault extends string | string[] | undefined = undefined, TTopLevel extends boolean | undefined = undefined, TColumns = undefined> = TypeDtoMutateRelationResultEntity<TRecord, TColumns extends string | string[] ? TColumns : TypeUtilGetParamsColumns<TOptionsRelation>, TMutateTypeTopLevel, TColumnsOmitDefault, TTopLevel> & (TModel extends BeanModelMeta ? (OmitNever<TypeDtoMutateRelationResultMergeInclude<TMutateTypeTopLevel, TypeUtilGetModelOptions<TModel>, TypeUtilGetParamsInlcude<TOptionsRelation>>> & OmitNever<TypeDtoMutateModelRelationResultMergeWith<TMutateTypeTopLevel, TypeUtilGetParamsWith<TOptionsRelation>>>) : {});
16
+ export type TypeDtoMutateRelationResult<TRecord, TModel extends BeanModelMeta | undefined, TOptionsRelation, TMutateTypeTopLevel extends TypeDtoMutateType, TColumnsOmitDefault extends string | string[] | undefined = undefined, TTopLevel extends boolean | undefined = undefined, TColumns = undefined, REFKEY = undefined> = TypeDtoMutateRelationResultEntity<TRecord, TColumns extends string | string[] ? TColumns : TypeUtilGetParamsColumns<TOptionsRelation>, TMutateTypeTopLevel, TColumnsOmitDefault, TTopLevel, REFKEY> & (TModel extends BeanModelMeta ? (OmitNever<TypeDtoMutateRelationResultMergeInclude<TMutateTypeTopLevel, TypeUtilGetModelOptions<TModel>, TypeUtilGetParamsInlcude<TOptionsRelation>>> & OmitNever<TypeDtoMutateModelRelationResultMergeWith<TMutateTypeTopLevel, TypeUtilGetParamsWith<TOptionsRelation>>>) : {});
17
17
  type TypeDtoMutateRelationResultMergeInclude<TMutateTypeTopLevel extends TypeDtoMutateType, TModelOptions extends IDecoratorModelOptions, TInclude extends {} | undefined | unknown> = {
18
18
  [RelationName in (keyof TModelOptions['relations'])]: TInclude extends {} ? TInclude[RelationName] extends {} | boolean ? TypeDtoMutateRelationResultMergeIncludeWrapper<TMutateTypeTopLevel, TModelOptions['relations'][RelationName], TInclude[RelationName]> : TypeDtoMutateRelationResultMergeAutoload<TMutateTypeTopLevel, TModelOptions['relations'][RelationName]> : TypeDtoMutateRelationResultMergeAutoload<TMutateTypeTopLevel, TModelOptions['relations'][RelationName]>;
19
19
  };
@@ -23,28 +23,19 @@ type TypeDtoMutateModelRelationResultMergeWith<TMutateTypeTopLevel extends TypeD
23
23
  type TypeDtoMutateRelationResultMergeIncludeWrapper<TMutateTypeTopLevel extends TypeDtoMutateType, Relation, IncludeWrapper> = IncludeWrapper extends false ? never : IncludeWrapper extends true ? TypeUtilGetDtoMutateRelationEntityByType<TMutateTypeTopLevel, Relation, undefined> : IncludeWrapper extends {} ? TypeUtilGetDtoMutateRelationEntityByType<TMutateTypeTopLevel, Relation, IncludeWrapper> : never;
24
24
  type TypeDtoMutateRelationResultMergeAutoload<TMutateTypeTopLevel extends TypeDtoMutateType, Relation> = TypeUtilGetRelationOptionsAutoload<Relation> extends true ? TypeUtilGetDtoMutateRelationEntityByType<TMutateTypeTopLevel, Relation, undefined> : never;
25
25
  type TypeDtoMutateRelationResultMergeWithRelation<TMutateTypeTopLevel extends TypeDtoMutateType, WithRelation> = WithRelation extends false ? never : WithRelation extends true ? never : WithRelation extends {} ? TypeUtilGetDtoMutateRelationEntityByType<TMutateTypeTopLevel, WithRelation, TypeUtilGetRelationOptions<WithRelation>> : never;
26
- type TypeUtilGetDtoMutateRelationEntityByType<TMutateTypeTopLevel extends TypeDtoMutateType, Relation, IncludeWrapper extends {} | undefined | unknown> = TypeUtilGetDtoMutateEntityByType<TMutateTypeTopLevel, TypeUtilGetRelationEntity<Relation>, TypeUtilGetRelationType<Relation>, TypeUtilGetRelationModel<Relation>, IncludeWrapper, TypeUtilGetColumnsFromRelationAndIncludeWrapper<Relation, IncludeWrapper>>;
27
- type TypeUtilGetDtoMutateEntityByType<TMutateTypeTopLevel extends TypeDtoMutateType, TRecord, TYPE, TModel extends BeanModelMeta | undefined, IncludeWrapper extends {} | undefined | unknown, Columns> = TYPE extends 'belongsTo' ? never : TYPE extends 'belongsToMany' ? Array<{
26
+ type TypeUtilGetDtoMutateRelationEntityByType<TMutateTypeTopLevel extends TypeDtoMutateType, Relation, IncludeWrapper extends {} | undefined | unknown> = TypeUtilGetDtoMutateEntityByType<TMutateTypeTopLevel, TypeUtilGetRelationEntity<Relation>, TypeUtilGetRelationType<Relation>, TypeUtilGetRelationModel<Relation>, IncludeWrapper, TypeUtilGetColumnsFromRelationAndIncludeWrapper<Relation, IncludeWrapper>, TypeUtilGetRelationKey<Relation>>;
27
+ type TypeUtilGetDtoMutateEntityByType<TMutateTypeTopLevel extends TypeDtoMutateType, TRecord, TYPE, TModel extends BeanModelMeta | undefined, IncludeWrapper extends {} | undefined | unknown, Columns, REFKEY = undefined> = TYPE extends 'belongsTo' ? never : TYPE extends 'belongsToMany' ? Array<{
28
28
  id: TableIdentity;
29
29
  deleted?: boolean;
30
- }> | undefined : TYPE extends 'hasMany' ? Array<TypeDtoMutateRelationResult<TRecord, TModel, IncludeWrapper, TMutateTypeTopLevel, undefined, false, Columns>> | undefined : TypeDtoMutateRelationResult<TRecord, TModel, IncludeWrapper, TMutateTypeTopLevel, undefined, false, Columns> | undefined;
31
- type TypeDtoMutateRelationResultEntity<TRecord, Columns = undefined, TMutateTypeTopLevel extends TypeDtoMutateType | undefined = undefined, TColumnsOmitDefault extends string | string[] | undefined = undefined, TTopLevel extends boolean | undefined = undefined> = TypeDtoMutateRelationResultPatch<TypeDtoMutateRelationResultEntityInner<TRecord, Columns, TMutateTypeTopLevel, TColumnsOmitDefault, TTopLevel>, TMutateTypeTopLevel, TTopLevel>;
32
- type TypeDtoMutateRelationResultPatch<TRecordResult, TMutateTypeTopLevel extends TypeDtoMutateType | undefined = undefined, TTopLevel extends boolean | undefined = undefined> = TTopLevel extends false ? TMutateTypeTopLevel extends 'update' | 'mutate' ? TypeUtilEntityPartial<TRecordResult, 'id' | 'deleted'> : TRecordResult : TRecordResult;
30
+ }> | undefined : TYPE extends 'hasMany' ? Array<TypeDtoMutateRelationResult<TRecord, TModel, IncludeWrapper, TMutateTypeTopLevel, undefined, false, Columns, REFKEY>> | undefined : TypeDtoMutateRelationResult<TRecord, TModel, IncludeWrapper, TMutateTypeTopLevel, undefined, false, Columns, REFKEY> | undefined;
31
+ type TypeDtoMutateRelationResultEntity<TRecord, Columns = undefined, TMutateTypeTopLevel extends TypeDtoMutateType | undefined = undefined, TColumnsOmitDefault extends string | string[] | undefined = undefined, TTopLevel extends boolean | undefined = undefined, REFKEY = undefined> = TypeDtoMutateRelationResultPatch<TypeDtoMutateRelationResultEntityInner<TRecord, Columns, TMutateTypeTopLevel, TColumnsOmitDefault, TTopLevel>, TMutateTypeTopLevel, TTopLevel, REFKEY>;
32
+ type TypeDtoMutateRelationResultPatch<TRecordResult, TMutateTypeTopLevel extends TypeDtoMutateType | undefined = undefined, TTopLevel extends boolean | undefined = undefined, REFKEY = undefined> = TTopLevel extends false ? TypeUtilEntityOmit<TypeDtoMutateRelationResultPatch2<TRecordResult, TMutateTypeTopLevel, TTopLevel>, REFKEY> : TypeDtoMutateRelationResultPatch2<TRecordResult, TMutateTypeTopLevel, TTopLevel>;
33
+ type TypeDtoMutateRelationResultPatch2<TRecordResult, TMutateTypeTopLevel extends TypeDtoMutateType | undefined = undefined, TTopLevel extends boolean | undefined = undefined> = TTopLevel extends false ? TMutateTypeTopLevel extends 'update' | 'mutate' ? TypeUtilEntityPartial<TRecordResult, 'id' | 'deleted'> : TRecordResult : TRecordResult;
33
34
  type TypeDtoMutateRelationResultEntityInner<TRecord, Columns = undefined, TMutateTypeTopLevel extends TypeDtoMutateType | undefined = undefined, TColumnsOmitDefault extends string | string[] | undefined = undefined, TTopLevel extends boolean | undefined = undefined> = [
34
35
  Columns
35
36
  ] extends [string | string[]] ? TypeDtoMutateRelationResultEntityFromColumns<TRecord, Columns, TMutateTypeTopLevel, TTopLevel> : TypeDtoMutateRelationResultEntityFromColumnsOmitDefault<TRecord, TMutateTypeTopLevel, TColumnsOmitDefault>;
36
37
  type TypeDtoMutateRelationResultEntityFromColumns<TRecord, Columns = undefined, TMutateTypeTopLevel extends TypeDtoMutateType | undefined = undefined, TTopLevel extends boolean | undefined = undefined> = TypeUtilEntitySelector<TRecord, TypeUtilPrepareColumns<TypeDtoMutateRelationResultPrepareColumns<TypeUtilPrepareColumns<Columns>, TMutateTypeTopLevel, TTopLevel>>>;
37
38
  type TypeDtoMutateRelationResultEntityFromColumnsOmitDefault<TRecord, TMutateTypeTopLevel extends TypeDtoMutateType | undefined = undefined, TColumnsOmitDefault extends string | string[] | undefined = undefined> = TypeUtilEntityOmit<TRecord, TypeUtilPrepareColumns<TypeDtoMutateRelationResultPrepareColumnsOmitDefault<TMutateTypeTopLevel, TColumnsOmitDefault>>>;
38
39
  type TypeDtoMutateRelationResultPrepareColumns<TColumns = undefined, TMutateTypeTopLevel extends TypeDtoMutateType | undefined = undefined, TTopLevel extends boolean | undefined = undefined> = TTopLevel extends true ? TColumns : TMutateTypeTopLevel extends 'create' ? TypeOmitStringUnion<TColumns, 'deleted' | 'id'> : (TColumns | 'deleted' | 'id');
39
- type TypeDtoMutateRelationResultPrepareColumnsOmitDefault<TMutateTypeTopLevel extends TypeDtoMutateType | undefined = undefined, TColumnsOmitDefault extends string | string[] | undefined = undefined> = TColumnsOmitDefault extends string | string[] ? TColumnsOmitDefault : TMutateTypeTopLevel extends 'create' ? [
40
- 'id',
41
- 'iid',
42
- 'deleted',
43
- 'createdAt',
44
- 'updatedAt'
45
- ] : [
46
- 'iid',
47
- 'createdAt',
48
- 'updatedAt'
49
- ];
40
+ type TypeDtoMutateRelationResultPrepareColumnsOmitDefault<TMutateTypeTopLevel extends TypeDtoMutateType | undefined = undefined, TColumnsOmitDefault extends string | string[] | undefined = undefined> = TColumnsOmitDefault extends string | string[] ? TColumnsOmitDefault : TMutateTypeTopLevel extends 'create' ? ['id', 'iid', 'deleted', 'createdAt', 'updatedAt'] : ['iid', 'createdAt', 'updatedAt'];
50
41
  export {};
@@ -26,6 +26,9 @@ export type TypeModelParamsRelationOptions<Relation> = boolean | (Omit<TypeUtilG
26
26
  export type TypeUtilGetRelationType<Relation> = Relation extends {
27
27
  type?: infer TYPE;
28
28
  } ? TYPE : undefined;
29
+ export type TypeUtilGetRelationKey<Relation> = Relation extends {
30
+ key?: infer KEY;
31
+ } ? KEY : undefined;
29
32
  export type TypeUtilGetRelationModel<Relation> = Relation extends {
30
33
  model?: ((() => Constructable<infer MODEL extends BeanModelMeta>) | Constructable<infer MODEL extends BeanModelMeta>);
31
34
  } ? MODEL : Relation extends {
@@ -10,22 +10,22 @@ import type { TypeModelClassLike, TypeModelOfModelLike, TypeModelsClassLikeGener
10
10
  import type { TypeEntityTableColumnNamesOfGeneral, TypeEntityTableColumnsOfGeneral } from './relationsColumns.ts';
11
11
  import type { TypeEntityTableNamesOfGeneral } from './relationsTables.ts';
12
12
  export type TypeModelRelationType = 'hasOne' | 'belongsTo' | 'hasMany' | 'belongsToMany';
13
- export interface IModelRelationHasOne<MODEL extends BeanModelMeta | (keyof IModelClassRecord), AUTOLOAD extends boolean = false, COLUMNS extends TypeModelColumn<TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity]> = TypeModelColumn<TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity]>> {
13
+ export interface IModelRelationHasOne<MODEL extends BeanModelMeta | (keyof IModelClassRecord), KEY extends keyof TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity] | undefined = keyof TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity], AUTOLOAD extends boolean = false, COLUMNS extends TypeModelColumn<TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity]> | undefined = TypeModelColumn<TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity]>> {
14
14
  type?: 'hasOne';
15
15
  model?: TypeModelClassLike<MODEL>;
16
- key?: keyof TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity];
16
+ key?: KEY;
17
17
  options?: IModelRelationOptionsOne<TypeModelOfModelLike<MODEL>, AUTOLOAD, COLUMNS>;
18
18
  }
19
- export interface IModelRelationBelongsTo<MODELSelf extends BeanModelMeta | (keyof IModelClassRecord), MODEL extends BeanModelMeta | (keyof IModelClassRecord), AUTOLOAD extends boolean = false, COLUMNS extends TypeModelColumn<TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity]> = TypeModelColumn<TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity]>> {
19
+ export interface IModelRelationBelongsTo<MODELSelf extends BeanModelMeta | (keyof IModelClassRecord), MODEL extends BeanModelMeta | (keyof IModelClassRecord), AUTOLOAD extends boolean = false, COLUMNS extends TypeModelColumn<TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity]> | undefined = TypeModelColumn<TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity]>> {
20
20
  type?: 'belongsTo';
21
21
  model?: TypeModelClassLike<MODEL>;
22
22
  key?: keyof TypeModelOfModelLike<MODELSelf>[TypeSymbolKeyEntity];
23
23
  options?: IModelRelationOptionsOne<TypeModelOfModelLike<MODEL>, AUTOLOAD, COLUMNS>;
24
24
  }
25
- export interface IModelRelationHasMany<MODEL extends BeanModelMeta | (keyof IModelClassRecord), AUTOLOAD extends boolean = false, COLUMNS extends TypeModelColumn<TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity]> | undefined = TypeModelColumn<TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity]>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined, Aggrs extends TypeModelSelectAggrParamsAggrs<TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity]> | undefined = undefined, Groups extends TypeModelColumnsStrict<TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity]> | undefined = undefined> {
25
+ export interface IModelRelationHasMany<MODEL extends BeanModelMeta | (keyof IModelClassRecord), KEY extends keyof TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity] | undefined = keyof TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity], AUTOLOAD extends boolean = false, COLUMNS extends TypeModelColumn<TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity]> | undefined = TypeModelColumn<TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity]>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined, Aggrs extends TypeModelSelectAggrParamsAggrs<TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity]> | undefined = undefined, Groups extends TypeModelColumnsStrict<TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity]> | undefined = undefined> {
26
26
  type?: 'hasMany';
27
27
  model?: TypeModelClassLike<MODEL>;
28
- key?: keyof TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity];
28
+ key?: KEY;
29
29
  options?: IModelRelationOptionsMany<TypeModelOfModelLike<MODEL>, AUTOLOAD, COLUMNS, ModelJoins, Aggrs, Groups>;
30
30
  }
31
31
  export interface IModelRelationBelongsToMany<MODELMiddle extends BeanModelMeta | (keyof IModelClassRecord), MODEL extends BeanModelMeta | (keyof IModelClassRecord), AUTOLOAD extends boolean = false, COLUMNS extends TypeModelColumn<TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity]> | undefined = TypeModelColumn<TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity]>, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined, Aggrs extends TypeModelSelectAggrParamsAggrs<TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity]> | undefined = undefined, Groups extends TypeModelColumnsStrict<TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity]> | undefined = undefined> {
@@ -36,7 +36,7 @@ export interface IModelRelationBelongsToMany<MODELMiddle extends BeanModelMeta |
36
36
  keyTo?: keyof TypeModelOfModelLike<MODELMiddle>[TypeSymbolKeyEntity];
37
37
  options?: IModelRelationOptionsMany<TypeModelOfModelLike<MODEL>, AUTOLOAD, COLUMNS, ModelJoins, Aggrs, Groups>;
38
38
  }
39
- export interface IModelRelationOptionsOne<MODEL extends BeanModelMeta, AUTOLOAD extends boolean = false, COLUMNS extends TypeModelColumn<MODEL[TypeSymbolKeyEntity]> = TypeModelColumn<MODEL[TypeSymbolKeyEntity]>> extends IModelRelationOptionsMetaWrapper {
39
+ export interface IModelRelationOptionsOne<MODEL extends BeanModelMeta, AUTOLOAD extends boolean = false, COLUMNS extends TypeModelColumn<MODEL[TypeSymbolKeyEntity]> | undefined = TypeModelColumn<MODEL[TypeSymbolKeyEntity]>> extends IModelRelationOptionsMetaWrapper {
40
40
  autoload?: AUTOLOAD;
41
41
  columns?: TypeModelColumnsPatch<MODEL[TypeSymbolKeyEntity], COLUMNS>;
42
42
  }
@@ -57,4 +57,4 @@ export interface IModelRelationOptionsMetaWrapper {
57
57
  meta?: IModelRelationOptionsMeta;
58
58
  }
59
59
  export type TypeModelRelationOptionsMetaClient = '_auto_' | '_initial_' | '_inherit_' | keyof IDatabaseClientRecord | ServiceDb;
60
- export type IRelationItem = [string, any, any, any];
60
+ export type IRelationItem = [string, any, any, any, boolean];
@@ -8,10 +8,10 @@ import type { TypeEntityTableColumnNamesOfGeneral, TypeEntityTableColumnsOfGener
8
8
  import type { IModelRelationOptionsMetaWrapper } from './relationsDef.ts';
9
9
  import type { TypeModelSelectGroupParamsColumnNames } from './relationsGroup.ts';
10
10
  import type { TypeEntityTableNamesOfGeneral } from './relationsTables.ts';
11
- export interface IModelRelationHasOneDynamic<MODEL extends BeanModelMeta | (keyof IModelClassRecord), OPTIONS extends IModelRelationOptionsOneDynamic<TypeModelOfModelLike<MODEL>> | undefined = undefined> {
11
+ export interface IModelRelationHasOneDynamic<MODEL extends BeanModelMeta | (keyof IModelClassRecord), KEY extends keyof TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity], OPTIONS extends IModelRelationOptionsOneDynamic<TypeModelOfModelLike<MODEL>> | undefined = undefined> {
12
12
  type?: 'hasOne';
13
13
  model?: TypeModelClassLike<MODEL>;
14
- key?: keyof TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity];
14
+ key?: KEY;
15
15
  options?: OPTIONS;
16
16
  }
17
17
  export interface IModelRelationBelongsToDynamic<MODELSelf extends BeanModelMeta | (keyof IModelClassRecord), MODEL extends BeanModelMeta | (keyof IModelClassRecord), OPTIONS extends IModelRelationOptionsOneDynamic<TypeModelOfModelLike<MODEL>> | undefined = undefined> {
@@ -20,10 +20,10 @@ export interface IModelRelationBelongsToDynamic<MODELSelf extends BeanModelMeta
20
20
  key?: keyof TypeModelOfModelLike<MODELSelf>[TypeSymbolKeyEntity];
21
21
  options?: OPTIONS;
22
22
  }
23
- export interface IModelRelationHasManyDynamic<MODEL extends BeanModelMeta | (keyof IModelClassRecord), OPTIONS extends IModelRelationOptionsManyDynamic<TypeModelOfModelLike<MODEL>, ModelJoins, Group> | undefined = undefined, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined, Group extends boolean | undefined = undefined> {
23
+ export interface IModelRelationHasManyDynamic<MODEL extends BeanModelMeta | (keyof IModelClassRecord), KEY extends keyof TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity], OPTIONS extends IModelRelationOptionsManyDynamic<TypeModelOfModelLike<MODEL>, ModelJoins, Group> | undefined = undefined, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined, Group extends boolean | undefined = undefined> {
24
24
  type?: 'hasMany';
25
25
  model?: TypeModelClassLike<MODEL>;
26
- key?: keyof TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity];
26
+ key?: KEY;
27
27
  options?: OPTIONS;
28
28
  }
29
29
  export interface IModelRelationBelongsToManyDynamic<MODELMiddle extends BeanModelMeta | (keyof IModelClassRecord), MODEL extends BeanModelMeta | (keyof IModelClassRecord), OPTIONS extends IModelRelationOptionsManyDynamic<TypeModelOfModelLike<MODEL>, ModelJoins, Group> | undefined = undefined, ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined, Group extends boolean | undefined = undefined> {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vona-module-a-orm",
3
3
  "type": "module",
4
- "version": "5.0.54",
4
+ "version": "5.0.55",
5
5
  "title": "a-orm",
6
6
  "vonaModule": {
7
7
  "capabilities": {