Files
worker/TYPEID_VERIFICATION.md
2025-10-24 11:31:48 +07:00

4.1 KiB

TypeId Verification Report

All TypeId Conflicts Resolved

Changes Made

  1. storage_constants.dart - Added new typeIds:

    • memberCardModel = 25
    • promotionModel = 26
    • categoryModel = 27
  2. member_card_model.dart - Changed from hardcoded typeId: 10 to typeId: HiveTypeIds.memberCardModel (25)

  3. promotion_model.dart - Changed from hardcoded typeId: 11 to typeId: HiveTypeIds.promotionModel (26)

  4. category_model.dart - Changed from hardcoded typeId: 12 to typeId: HiveTypeIds.categoryModel (27)

TypeId Range Summary

Core Models:        0-9   (10 slots, all assigned)
Loyalty Models:     10-13 (4 slots, all assigned)
Project/Quote:      14-17 (4 slots, all assigned)
Chat:               18-19 (2 slots, all assigned)
Extended Models:    20-27 (8 used, 2 available: 28-29)
Enums:              30-51 (22 assigned, 8 available: 52-59)
Cache/Sync:         60-62 (3 assigned, 7 available: 63-69)
Reserved Future:    70-99 (30 slots available)
Special:            100   (2 values - max cache size config)

Unique TypeIds Assigned (0-69)

Models: 0-27

0  = userModel
1  = userSessionModel
2  = productModel
3  = stockLevelModel
4  = cartModel
5  = cartItemModel
6  = orderModel
7  = orderItemModel
8  = invoiceModel
9  = paymentLineModel
10 = loyaltyPointEntryModel
11 = giftCatalogModel
12 = redeemedGiftModel
13 = pointsRecordModel
14 = projectSubmissionModel
15 = designRequestModel
16 = quoteModel
17 = quoteItemModel
18 = chatRoomModel
19 = messageModel
20 = notificationModel
21 = showroomModel
22 = showroomProductModel
23 = paymentReminderModel
24 = auditLogModel
25 = memberCardModel ✨ (NEW - was conflicting at 10)
26 = promotionModel ✨ (NEW - was conflicting at 11)
27 = categoryModel ✨ (NEW - was conflicting at 12)

Enums: 30-51

30 = userRole
31 = userStatus
32 = loyaltyTier
33 = orderStatus
34 = invoiceType
35 = invoiceStatus
36 = paymentMethod
37 = paymentStatus
38 = entryType
39 = entrySource
40 = complaintStatus
41 = giftCategory
42 = giftStatus
43 = pointsStatus
44 = projectType
45 = submissionStatus
46 = designStatus
47 = quoteStatus
48 = roomType
49 = contentType
50 = reminderType
51 = notificationType

Cache/Sync: 60-62

60 = cachedData
61 = syncState
62 = offlineRequest

Aliases (Reference existing typeIds)

memberTier = loyaltyTier (32)
userType = userRole (30)
projectStatus = submissionStatus (45)
transactionType = entryType (38)

No Duplicates Found

Verified using command:

grep "static const int" lib/core/constants/storage_constants.dart | awk '{print $5}' | sort | uniq -d

Result: No duplicate values

No Hardcoded TypeIds Found

Verified using command:

grep -r "@HiveType(typeId: [0-9]" lib/

Result: No hardcoded typeIds in lib/ directory

All Models Use Constants

Verified that all 47+ models now use HiveTypeIds.constantName format:

  • All auth models
  • All product models
  • All cart models
  • All order models
  • All loyalty models
  • All project models
  • All quote models
  • All chat models
  • All showroom models
  • All notification models
  • All enum types
  • All cache models

Next Actions Required

1. Regenerate Hive Adapters

flutter pub run build_runner build --delete-conflicting-outputs

This will regenerate:

  • member_card_model.g.dart with new typeId 25
  • promotion_model.g.dart with new typeId 26
  • category_model.g.dart with new typeId 27

2. Clear Development Data (Optional)

If testing locally, you may want to clear existing Hive boxes:

await Hive.deleteBoxFromDisk('home_box');
await Hive.deleteBoxFromDisk('products_box');

3. Test the App

Run the app and verify:

  • No HiveError about duplicate typeIds
  • Member cards load correctly
  • Promotions load correctly
  • Product categories load correctly
  • All Hive operations work as expected

Status: READY FOR ADAPTER GENERATION

All typeId conflicts have been resolved. The codebase is now ready for running the build_runner to regenerate adapters.