foreignKeyConstraintNameForModel method

String? foreignKeyConstraintNameForModel(
  1. ModelDefinition model,
  2. FieldDefinition field
)

Returns the conventional foreign key constraint name for field.

Implementation

String? foreignKeyConstraintNameForModel(
  ModelDefinition model,
  FieldDefinition field,
) {
  final relation = field.attribute('relation');
  if (relation == null) {
    return null;
  }

  final localFields = _parseListArgument(relation.arguments['fields']);
  if (localFields.isEmpty) {
    return null;
  }

  final columnSuffix = localFields
      .map(
        (fieldName) => model.findField(fieldName)?.databaseName ?? fieldName,
      )
      .join('_');
  return '${model.databaseName}_${columnSuffix}_fkey';
}