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:
@@ -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];
|
||||
}
|
||||
@@ -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];
|
||||
}
|
||||
@@ -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,
|
||||
];
|
||||
}
|
||||
@@ -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];
|
||||
}
|
||||
@@ -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];
|
||||
}
|
||||
Reference in New Issue
Block a user