Add order entities and mocks for client order feature

Introduces new domain entities for order types and one-time orders, along with their positions. Adds a mock OrderRepository to the data_connect package and wires it into the module. Updates localization files for new order flows and refactors Equatable usage for consistency. Also adds a minus icon to the design system.
This commit is contained in:
Achintha Isuru
2026-01-22 16:47:39 -05:00
parent 7090efb583
commit 4b3125de1a
80 changed files with 2472 additions and 531 deletions

View File

@@ -4,6 +4,13 @@ import 'package:equatable/equatable.dart';
///
/// Grants a user access to business-level operations.
class BizMember extends Equatable {
const BizMember({
required this.id,
required this.businessId,
required this.userId,
required this.role,
});
/// Unique identifier for this membership.
final String id;
@@ -16,13 +23,6 @@ class BizMember extends Equatable {
/// The role within the business.
final String role;
const BizMember({
required this.id,
required this.businessId,
required this.userId,
required this.role,
});
@override
List<Object?> get props => [id, businessId, userId, role];
List<Object?> get props => <Object?>[id, businessId, userId, role];
}

View File

@@ -4,6 +4,13 @@ import 'package:equatable/equatable.dart';
///
/// Grants a user access to specific [Hub] operations, distinct from [BizMember].
class HubMember extends Equatable {
const HubMember({
required this.id,
required this.hubId,
required this.userId,
required this.role,
});
/// Unique identifier for this membership.
final String id;
@@ -16,13 +23,6 @@ class HubMember extends Equatable {
/// The role within the hub.
final String role;
const HubMember({
required this.id,
required this.hubId,
required this.userId,
required this.role,
});
@override
List<Object?> get props => [id, hubId, userId, role];
List<Object?> get props => <Object?>[id, hubId, userId, role];
}

View File

@@ -4,6 +4,14 @@ import 'package:equatable/equatable.dart';
///
/// Allows a [User] to be a member of either a [Business] or a [Hub].
class Membership extends Equatable {
const Membership({
required this.id,
required this.userId,
required this.memberableId,
required this.memberableType,
required this.role,
});
/// Unique identifier for the membership record.
final String id;
@@ -19,14 +27,6 @@ class Membership extends Equatable {
/// The role within that organization (e.g., 'manager', 'viewer').
final String role;
const Membership({
required this.id,
required this.userId,
required this.memberableId,
required this.memberableType,
required this.role,
});
@override
List<Object?> get props => [id, userId, memberableId, memberableType, role];
List<Object?> get props => <Object?>[id, userId, memberableId, memberableType, role];
}

View File

@@ -29,6 +29,18 @@ enum StaffStatus {
/// Contains all personal and professional details of a staff member.
/// Linked to a [User] via [authProviderId].
class Staff extends Equatable {
const Staff({
required this.id,
required this.authProviderId,
required this.name,
required this.email,
this.phone,
required this.status,
this.address,
this.avatar,
this.livePhoto,
});
/// Unique identifier for the staff profile.
final String id;
@@ -56,20 +68,8 @@ class Staff extends Equatable {
/// URL to a verified live photo for identity verification.
final String? livePhoto;
const Staff({
required this.id,
required this.authProviderId,
required this.name,
required this.email,
this.phone,
required this.status,
this.address,
this.avatar,
this.livePhoto,
});
@override
List<Object?> get props => [
List<Object?> get props => <Object?>[
id,
authProviderId,
name,

View File

@@ -5,6 +5,13 @@ import 'package:equatable/equatable.dart';
/// This entity corresponds to the Firebase Auth user record and acts as the
/// linkage between the authentication system and the specific [Staff] or Client profiles.
class User extends Equatable {
const User({
required this.id,
required this.email,
this.phone,
required this.role,
});
/// The unique identifier from the authentication provider (e.g., Firebase UID).
final String id;
@@ -18,13 +25,6 @@ class User extends Equatable {
/// This determines the initial routing and permissions.
final String role;
const User({
required this.id,
required this.email,
this.phone,
required this.role,
});
@override
List<Object?> get props => [id, email, phone, role];
List<Object?> get props => <Object?>[id, email, phone, role];
}