Littlefish Feature Models

Shared domain models package for the littlefish merchant app. This package contains all common data models organized by domain, providing a single source of truth for model definitions across all feature packages.

Purpose

This package centralizes all domain models that are shared across multiple feature packages. Instead of duplicating models in each feature package, all packages reference this shared models package.

Structure

lib/
├── littlefish_feature_models.dart    # Main library file
└── models/
    ├── shared/                       # Shared utilities and base models
    │   ├── enums.dart
    │   ├── country_list.dart
    │   ├── country_stub.dart
    │   └── ...
    ├── accounts/                     # Linked account models
    ├── customers/                    # Customer models
    ├── store/                        # Business profile models
    └── tax/                          # Tax models

Note: Product, stock, promotion and checkout-cart models previously lived here. They have been retired in favour of the clean UI models owned by littlefish_feature_products and littlefish_feature_stock. Feature packages consume those models directly — they are no longer re-exported through this package.

Usage

Add this package as a dependency in your feature package's pubspec.yaml:

dependencies:
  littlefish_feature_models:
    path: ../../models/littlefish_feature_models

Then import the models you need:

import 'package:littlefish_feature_models/littlefish_feature_models.dart';

// Or import specific domains
import 'package:littlefish_feature_models/models/customers/customers.dart';
import 'package:littlefish_feature_models/models/store/store.dart';

Dependencies

  • littlefish_core: ^4.2.0
  • littlefish_core_utils
  • json_annotation: ^4.9.0

Development

To generate JSON serialization code:

dart run build_runner build --delete-conflicting-outputs