morphTo<R extends KhademModel<R>> method

RelationDefinition<KhademModel> morphTo<R extends KhademModel<R>>({
  1. required String morphName,
  2. required String relatedTable,
  3. required R factory(),
  4. String ownerKey = 'id',
  5. dynamic query(
    1. QueryBuilderInterface
    )?,
})

Define a polymorphic inverse relationship (fixed target type).

This is like belongsTo, but it only loads if the [morphName]_type matches the target model type.

Implementation

RelationDefinition morphTo<R extends KhademModel<R>>({
  required String morphName,
  required String relatedTable,
  required R Function() factory,
  String ownerKey = 'id',
  Function(QueryBuilderInterface)? query,
}) {
  return RelationDefinition<R>(
    type: RelationType.morphTo,
    localKey: '',
    foreignKey: '${morphName}_id',
    ownerKey: ownerKey,
    relatedTable: relatedTable,
    factory: factory,
    morphIdField: '${morphName}_id',
    morphTypeField: '${morphName}_type',
    query: query,
  );
}