Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot Run Build Successfully due to MappableClass #270

Open
JustJaESon opened this issue Feb 13, 2025 · 1 comment
Open

Cannot Run Build Successfully due to MappableClass #270

JustJaESon opened this issue Feb 13, 2025 · 1 comment

Comments

@JustJaESon
Copy link

JustJaESon commented Feb 13, 2025

so this is my code I am creating a model that extends into an entity

// Hook for EventBookingStatusEnum and EventButtonType
class EventBookingStatusHook extends MappingHook {
  @override
  dynamic beforeDecode(dynamic value) {
    if (value is Map<String, dynamic>) {
      final status = determineEventBookingStatus(value);
      return {
        ...value,
        'eventBookingStatusEnum': status.value1,
        'eventButtonType': status.value2,
      };
    }
    return value;
  }
}

@MappableClass(hook: EventBookingStatusHook())
class EventDetailModel extends EventDetailEntity with EventDetailModelMappable {
  EventDetailModel({
    required super.eventButtonType,
    super.eventBookingDetail,
    super.remainingTicket,
    super.eventRestrictedDetail,
    super.eventInvitationDetail,
    super.eventEvaluationDetail,
    required super.isBookingAllowed,
    required super.id,
    required super.title,
    required super.summary,
    required super.eventStartDate,
    required super.eventStartTime,
    required super.eventEndDate,
    required super.eventEndTime,
    required super.venueName,
    required super.venueAddress,
    required super.description,
    required super.status,
    required super.category,
    required super.tags,
    required super.school,
    required super.audience,
    required super.guests,
    required super.visibility,
    required super.eventCapacity,
    required super.saleStartDate,
    required super.saleStartTime,
    required super.saleEndDate,
    required super.saleEndTime,
    required super.identification,
    required super.slug,
    required super.createdAt,
    required super.updatedAt,
    required super.organizerName,
    required super.organizerAvatar,
    required super.organizerSlug,
    required super.eventImageUrl,
    required super.eventBookingStatusEnum,
  });

  // Initialize Mappers
  static void initialize() {
    MapperContainer.globals.use(TagsMapper());
    MapperContainer.globals.use(EventStatusMapper());
  }
}

this is the code but when I run the build runner it will return an error saying

#0 TypeChecker._computeConstantValue (package:source_gen/src/type_checker.dart:114:7)
#1 TypeChecker._annotationsWhere (package:source_gen/src/type_checker.dart:139:21)
#2 _SyncStarIterator.moveNext (dart:async-patch/async_patch.dart:564:14)
#3 Iterable.isEmpty (dart:core/iterable.dart:541:33)
#4 TypeChecker.firstAnnotationOf (package:source_gen/src/type_checker.dart:73:20)
#5 TypeChecker.hasAnnotationOf (package:source_gen/src/type_checker.dart:80:7)
#6 MapperElementGroup.getOrAddMapperForElement (package:dart_mappable_builder/src/mapper_group.dart:69:24)
#7 MapperElementGroup.analyze (package:dart_mappable_builder/src/mapper_group.dart:51:13)

#8 MappableBuilder.generateMapperFile (package:dart_mappable_builder/src/builders/mappable_builder.dart:74:5)

#9 Future.wait. (dart:async/future.dart:520:21)

#10 MappableBuilder.build (package:dart_mappable_builder/src/builders/mappable_builder.dart:38:7)

#11 runBuilder.buildForInput (package:build/src/generate/run_builder.dart:83:7)

#12 Future.wait. (dart:async/future.dart:520:21)

#13 scopeLogAsync. (package:build/src/builder/logging.dart:32:40)

[SEVERE] dart_mappable_builder on lib/features/eventually/event_detail/data/models/event_detail_model.dart:

line 1, column 2009 of package:flutter_mflix_app/features/eventually/event_detail/data/models/event_detail_model.dart: Could not resolve annotation for class EventDetailModel extends EventDetailEntity.

1 │ @MappableClass(hook: EventBookingStatusHook())
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

@schultek
Copy link
Owner

The hook must have a constant contructor

class EventBookingStatusHook extends MappingHook {
  const EventBookingStatusHook()

  ...
}

Don't you get an error in your ide on this line: @MappableClass(hook: EventBookingStatusHook())?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants