Move apps to mobile directory structure

Relocated all app directories (client, design_system_viewer, staff) and their contents under the new 'apps/mobile' path. This change improves project organization and prepares for future platform-specific structuring.
This commit is contained in:
Achintha Isuru
2026-01-22 10:17:19 -05:00
parent 2f992ae5fa
commit cf59935ec8
982 changed files with 3 additions and 2532 deletions

View File

@@ -0,0 +1,36 @@
import 'package:equatable/equatable.dart';
/// Represents a legal or service contract.
///
/// Can be between a business and the platform, or a business and staff.
class BizContract extends Equatable {
/// Unique identifier.
final String id;
/// The [Business] party to the contract.
final String businessId;
/// Descriptive name of the contract.
final String name;
/// Valid from date.
final DateTime startDate;
/// Valid until date (null if indefinite).
final DateTime? endDate;
/// URL to the document content (PDF/HTML).
final String contentUrl;
const BizContract({
required this.id,
required this.businessId,
required this.name,
required this.startDate,
this.endDate,
required this.contentUrl,
});
@override
List<Object?> get props => [id, businessId, name, startDate, endDate, contentUrl];
}

View File

@@ -0,0 +1,47 @@
import 'package:equatable/equatable.dart';
/// The operating status of a [Business].
enum BusinessStatus {
/// Business created but not yet approved.
pending,
/// Fully active and operational.
active,
/// Temporarily suspended (e.g. for non-payment).
suspended,
/// Permanently inactive.
inactive,
}
/// Represents a Client Company / Business.
///
/// This is the top-level organizational entity in the system.
class Business extends Equatable {
/// Unique identifier for the business.
final String id;
/// Display name of the business.
final String name;
/// Legal registration or tax number.
final String registrationNumber;
/// Current operating status.
final BusinessStatus status;
/// URL to the business logo.
final String? avatar;
const Business({
required this.id,
required this.name,
required this.registrationNumber,
required this.status,
this.avatar,
});
@override
List<Object?> get props => [id, name, registrationNumber, status, avatar];
}

View File

@@ -0,0 +1,41 @@
import 'package:equatable/equatable.dart';
/// Represents payroll and operational configuration for a [Business].
class BusinessSetting extends Equatable {
/// Unique identifier for the settings record.
final String id;
/// The [Business] these settings apply to.
final String businessId;
/// Prefix for generated invoices (e.g., "INV-").
final String prefix;
/// Whether overtime calculations are applied.
final bool overtimeEnabled;
/// Requirement method for clocking in (e.g. "qr_code", "geo_fence").
final String? clockInRequirement;
/// Requirement method for clocking out.
final String? clockOutRequirement;
const BusinessSetting({
required this.id,
required this.businessId,
required this.prefix,
required this.overtimeEnabled,
this.clockInRequirement,
this.clockOutRequirement,
});
@override
List<Object?> get props => [
id,
businessId,
prefix,
overtimeEnabled,
clockInRequirement,
clockOutRequirement,
];
}

View File

@@ -0,0 +1,46 @@
import 'package:equatable/equatable.dart';
/// The status of a [Hub].
enum HubStatus {
/// Fully operational.
active,
/// Closed or inactive.
inactive,
/// Not yet ready for operations.
underConstruction,
}
/// Represents a branch location or operational unit within a [Business].
class Hub extends Equatable {
/// Unique identifier.
final String id;
/// The parent [Business].
final String businessId;
/// Display name of the hub (e.g. "Downtown Branch").
final String name;
/// Physical address of this hub.
final String address;
/// Unique identifier of the NFC tag assigned to this hub.
final String? nfcTagId;
/// Operational status.
final HubStatus status;
const Hub({
required this.id,
required this.businessId,
required this.name,
required this.address,
this.nfcTagId,
required this.status,
});
@override
List<Object?> get props => [id, businessId, name, address, nfcTagId, status];
}

View File

@@ -0,0 +1,24 @@
import 'package:equatable/equatable.dart';
/// Represents a department within a [Hub].
///
/// Used for more granular organization of staff and events (e.g. "Kitchen", "Service").
class HubDepartment extends Equatable {
/// Unique identifier.
final String id;
/// The [Hub] this department belongs to.
final String hubId;
/// Name of the department.
final String name;
const HubDepartment({
required this.id,
required this.hubId,
required this.name,
});
@override
List<Object?> get props => [id, hubId, name];
}