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,24 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
|
||||
/// Represents a required certificate definition.
|
||||
///
|
||||
/// Examples: "Food Hygiene Level 2", "SIA Badge".
|
||||
class Certificate extends Equatable {
|
||||
/// Unique identifier.
|
||||
final String id;
|
||||
|
||||
/// Display name of the certificate.
|
||||
final String name;
|
||||
|
||||
/// Whether this certificate is mandatory for platform access or specific roles.
|
||||
final bool isRequired;
|
||||
|
||||
const Certificate({
|
||||
required this.id,
|
||||
required this.name,
|
||||
required this.isRequired,
|
||||
});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [id, name, isRequired];
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
|
||||
/// Represents a job category / skill type.
|
||||
///
|
||||
/// Examples: "Waiter", "Security Guard", "Bartender".
|
||||
/// Linked to a [SkillCategory].
|
||||
class Skill extends Equatable {
|
||||
/// Unique identifier.
|
||||
final String id;
|
||||
|
||||
/// The broader category (e.g. "Hospitality").
|
||||
final String categoryId;
|
||||
|
||||
/// Display name of the skill.
|
||||
final String name;
|
||||
|
||||
/// Default hourly rate suggested for this skill.
|
||||
final double basePrice;
|
||||
|
||||
const Skill({
|
||||
required this.id,
|
||||
required this.categoryId,
|
||||
required this.name,
|
||||
required this.basePrice,
|
||||
});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [id, categoryId, name, basePrice];
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
|
||||
/// Represents a broad category of skills (e.g. "Hospitality", "Logistics").
|
||||
class SkillCategory extends Equatable {
|
||||
/// Unique identifier.
|
||||
final String id;
|
||||
|
||||
/// Display name.
|
||||
final String name;
|
||||
|
||||
const SkillCategory({
|
||||
required this.id,
|
||||
required this.name,
|
||||
});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [id, name];
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
|
||||
/// Represents required equipment or uniform for a specific [Skill].
|
||||
///
|
||||
/// Examples: "Black Shirt" (Uniform), "Safety Boots" (Equipment).
|
||||
class SkillKit extends Equatable {
|
||||
/// Unique identifier.
|
||||
final String id;
|
||||
|
||||
/// The [Skill] this kit applies to.
|
||||
final String skillId;
|
||||
|
||||
/// Description of the item.
|
||||
final String name;
|
||||
|
||||
/// Whether the staff member MUST possess this item.
|
||||
final bool isRequired;
|
||||
|
||||
/// Type of kit ('uniform' or 'equipment').
|
||||
final String type;
|
||||
|
||||
const SkillKit({
|
||||
required this.id,
|
||||
required this.skillId,
|
||||
required this.name,
|
||||
required this.isRequired,
|
||||
required this.type,
|
||||
});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [id, skillId, name, isRequired, type];
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
|
||||
/// The expertise level of a staff member in a specific skill.
|
||||
enum SkillLevel {
|
||||
/// Entry level.
|
||||
beginner,
|
||||
|
||||
/// Experienced.
|
||||
skilled,
|
||||
|
||||
/// Expert / Managerial level.
|
||||
professional,
|
||||
}
|
||||
|
||||
/// The verification status of a claimed skill.
|
||||
enum StaffSkillStatus {
|
||||
/// Claimed by staff, waiting for admin approval.
|
||||
pending,
|
||||
|
||||
/// Verified by admin (documents checked).
|
||||
verified,
|
||||
|
||||
/// Rejected by admin.
|
||||
rejected,
|
||||
}
|
||||
|
||||
/// Represents a staff member's qualification in a specific [Skill].
|
||||
class StaffSkill extends Equatable {
|
||||
/// Unique identifier.
|
||||
final String id;
|
||||
|
||||
/// The [Staff] member.
|
||||
final String staffId;
|
||||
|
||||
/// The [Skill] they possess.
|
||||
final String skillId;
|
||||
|
||||
/// Their expertise level.
|
||||
final SkillLevel level;
|
||||
|
||||
/// Years of experience.
|
||||
final int experienceYears;
|
||||
|
||||
/// Verification status.
|
||||
final StaffSkillStatus status;
|
||||
|
||||
const StaffSkill({
|
||||
required this.id,
|
||||
required this.staffId,
|
||||
required this.skillId,
|
||||
required this.level,
|
||||
required this.experienceYears,
|
||||
required this.status,
|
||||
});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [id, staffId, skillId, level, experienceYears, status];
|
||||
}
|
||||
Reference in New Issue
Block a user