2024-06-06 16:11:26 +02:00
|
|
|
enum MenuSort {
|
|
|
|
nameAsc,
|
|
|
|
nameDesc,
|
|
|
|
timestampAsc,
|
|
|
|
timestampDesc,
|
|
|
|
}
|
|
|
|
|
|
|
|
enum ViewOrder {
|
|
|
|
swipedFirst,
|
|
|
|
matchedFirst,
|
|
|
|
swipedOnly,
|
|
|
|
matchedOnly,
|
|
|
|
}
|
|
|
|
|
2024-05-17 23:08:26 +02:00
|
|
|
enum Gender {
|
|
|
|
none,
|
|
|
|
male,
|
|
|
|
female,
|
2024-05-31 03:20:42 +02:00
|
|
|
divers;
|
|
|
|
|
|
|
|
String get displayName {
|
|
|
|
switch (this) {
|
|
|
|
case Gender.none:
|
|
|
|
return 'unknown';
|
|
|
|
case Gender.male:
|
|
|
|
return 'male';
|
|
|
|
case Gender.female:
|
|
|
|
return 'female';
|
|
|
|
case Gender.divers:
|
|
|
|
return 'diverse';
|
|
|
|
}
|
|
|
|
}
|
2024-05-17 23:08:26 +02:00
|
|
|
}
|
|
|
|
|
2024-05-15 13:35:01 +02:00
|
|
|
enum SkillOption {
|
|
|
|
product,
|
|
|
|
finance,
|
|
|
|
engineering,
|
|
|
|
design,
|
|
|
|
marketing,
|
|
|
|
management,
|
|
|
|
operations,
|
|
|
|
legal;
|
|
|
|
|
|
|
|
String get displayName {
|
|
|
|
switch (this) {
|
|
|
|
case SkillOption.product:
|
|
|
|
return 'Product Development';
|
|
|
|
case SkillOption.design:
|
|
|
|
return 'Design';
|
|
|
|
case SkillOption.engineering:
|
|
|
|
return 'Engineering';
|
|
|
|
case SkillOption.marketing:
|
|
|
|
return 'Sales and Marketing';
|
|
|
|
case SkillOption.finance:
|
|
|
|
return 'Finance';
|
|
|
|
case SkillOption.management:
|
|
|
|
return 'Management';
|
|
|
|
case SkillOption.operations:
|
|
|
|
return 'Operations';
|
|
|
|
case SkillOption.legal:
|
|
|
|
return 'Legal';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2024-05-21 14:01:44 +02:00
|
|
|
|
|
|
|
enum VisionOption {
|
|
|
|
marketLeader,
|
|
|
|
sustainableBusiness,
|
|
|
|
innovativeProduct,
|
|
|
|
exitStrategy;
|
|
|
|
|
|
|
|
String get displayName {
|
|
|
|
switch (this) {
|
|
|
|
case VisionOption.marketLeader:
|
|
|
|
return 'Become market leader';
|
|
|
|
case VisionOption.sustainableBusiness:
|
|
|
|
return 'Build a sustainable and ethical business';
|
|
|
|
case VisionOption.innovativeProduct:
|
|
|
|
return "Develop an innovative product that improves people's lives";
|
|
|
|
case VisionOption.exitStrategy:
|
|
|
|
return 'Pursue an exit strategy through sale or IPO';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
enum AvailabilityOption {
|
|
|
|
lessThan10Hours,
|
|
|
|
tenTo20Hours,
|
|
|
|
twentyTo40Hours,
|
2024-06-09 00:04:13 +02:00
|
|
|
fullTime,
|
|
|
|
flexible;
|
2024-05-21 14:01:44 +02:00
|
|
|
|
|
|
|
String get displayName {
|
|
|
|
switch (this) {
|
|
|
|
case AvailabilityOption.lessThan10Hours:
|
|
|
|
return 'Less than 10 hours';
|
|
|
|
case AvailabilityOption.tenTo20Hours:
|
2024-06-09 00:04:13 +02:00
|
|
|
return 'Part-time (10 - 20 hours)';
|
2024-05-21 14:01:44 +02:00
|
|
|
case AvailabilityOption.twentyTo40Hours:
|
2024-06-09 00:04:13 +02:00
|
|
|
return 'Part-time (20 - 40 hours)';
|
2024-05-21 14:01:44 +02:00
|
|
|
case AvailabilityOption.fullTime:
|
2024-06-09 00:04:13 +02:00
|
|
|
return 'Full-time (40 hours or more)';
|
|
|
|
case AvailabilityOption.flexible:
|
|
|
|
return 'Flexible, full-time or part-time';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
String get commitmentText {
|
|
|
|
switch (this) {
|
|
|
|
case AvailabilityOption.lessThan10Hours:
|
|
|
|
return 'secondary occupation with less than 10 hours per week';
|
|
|
|
case AvailabilityOption.tenTo20Hours:
|
|
|
|
return 'part-time with 10 to 20 hours per week';
|
|
|
|
case AvailabilityOption.twentyTo40Hours:
|
|
|
|
return 'part-time with 20 to 40 hours per week';
|
|
|
|
case AvailabilityOption.fullTime:
|
|
|
|
return 'full-time';
|
|
|
|
case AvailabilityOption.flexible:
|
|
|
|
return 'full-time or part-time';
|
2024-05-21 14:01:44 +02:00
|
|
|
}
|
|
|
|
}
|
2024-05-31 23:55:33 +02:00
|
|
|
|
|
|
|
/// @returns [AvailabilityOption.lessThan10Hours] in case [str] is null or empty
|
|
|
|
static AvailabilityOption fromString(String? str) {
|
|
|
|
if (str == null || str.isEmpty) {
|
|
|
|
return AvailabilityOption.lessThan10Hours; // return a default value
|
|
|
|
}
|
|
|
|
return AvailabilityOption.values.firstWhere(
|
|
|
|
(x) => x.toString() == str,
|
|
|
|
orElse: () =>
|
|
|
|
throw ArgumentError('Invalid AvailabilityOption enum value: $str'),
|
|
|
|
);
|
|
|
|
}
|
2024-05-21 14:01:44 +02:00
|
|
|
}
|
2024-05-21 19:37:00 +02:00
|
|
|
|
|
|
|
enum WorkValueOption {
|
|
|
|
transparency,
|
|
|
|
innovation,
|
|
|
|
teamwork,
|
|
|
|
workLifeBalance;
|
|
|
|
|
|
|
|
String get displayName {
|
|
|
|
switch (this) {
|
|
|
|
case WorkValueOption.transparency:
|
|
|
|
return 'Transparency and openness';
|
|
|
|
case WorkValueOption.innovation:
|
|
|
|
return 'Innovation and creativity';
|
|
|
|
case WorkValueOption.teamwork:
|
|
|
|
return 'Teamwork and collaboration';
|
|
|
|
case WorkValueOption.workLifeBalance:
|
|
|
|
return 'Work-life balance';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
enum CultureOption {
|
|
|
|
performanceOriented,
|
|
|
|
supportive,
|
|
|
|
flexible,
|
|
|
|
traditional;
|
|
|
|
|
|
|
|
String get displayName {
|
|
|
|
switch (this) {
|
|
|
|
case CultureOption.performanceOriented:
|
|
|
|
return 'Performance-oriented and competitive';
|
|
|
|
case CultureOption.supportive:
|
|
|
|
return 'Supportive and collegial';
|
|
|
|
case CultureOption.flexible:
|
|
|
|
return 'Flexible and adaptable';
|
|
|
|
case CultureOption.traditional:
|
|
|
|
return 'Traditional and structured';
|
|
|
|
}
|
|
|
|
}
|
2024-05-31 23:55:33 +02:00
|
|
|
|
|
|
|
/// @returns [CultureOption.traditional] in case [str] is null or empty
|
|
|
|
static CultureOption fromString(String? str) {
|
|
|
|
if (str == null || str.isEmpty) {
|
|
|
|
return CultureOption.traditional; // return a default value
|
|
|
|
}
|
|
|
|
return CultureOption.values.firstWhere(
|
|
|
|
(x) => x.toString() == str,
|
|
|
|
orElse: () =>
|
|
|
|
throw ArgumentError('Invalid CultureOption enum value: $str'),
|
|
|
|
);
|
|
|
|
}
|
2024-05-21 19:37:00 +02:00
|
|
|
}
|
2024-05-22 02:46:46 +02:00
|
|
|
|
|
|
|
enum CommunicationPreference {
|
|
|
|
daily,
|
|
|
|
weekly,
|
|
|
|
adhoc,
|
|
|
|
formal;
|
|
|
|
|
|
|
|
String get displayName {
|
|
|
|
switch (this) {
|
|
|
|
case CommunicationPreference.daily:
|
|
|
|
return 'Frequent updates and daily meetings';
|
|
|
|
case CommunicationPreference.weekly:
|
|
|
|
return 'Weekly summaries and updates';
|
|
|
|
case CommunicationPreference.adhoc:
|
|
|
|
return 'Ad-hoc communication as needed';
|
|
|
|
case CommunicationPreference.formal:
|
|
|
|
return 'Formal reports and documentation';
|
|
|
|
}
|
|
|
|
}
|
2024-05-31 23:55:33 +02:00
|
|
|
|
|
|
|
/// @returns [CommunicationPreference.daily] in case [str] is null or empty
|
|
|
|
static CommunicationPreference fromString(String? str) {
|
|
|
|
if (str == null || str.isEmpty) {
|
|
|
|
return CommunicationPreference.daily; // return a default value
|
|
|
|
}
|
|
|
|
return CommunicationPreference.values.firstWhere(
|
|
|
|
(x) => x.toString() == str,
|
|
|
|
orElse: () => throw ArgumentError(
|
|
|
|
'Invalid CommunicationPreference enum value: $str'),
|
|
|
|
);
|
|
|
|
}
|
2024-05-22 02:46:46 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
enum RiskTolerance {
|
|
|
|
riskAverse,
|
|
|
|
cautious,
|
|
|
|
balanced,
|
|
|
|
adaptive,
|
|
|
|
riskTaker;
|
|
|
|
|
|
|
|
String get displayName {
|
|
|
|
switch (this) {
|
|
|
|
case RiskTolerance.riskAverse:
|
|
|
|
return 'Prefer avoiding risks whenever possible';
|
|
|
|
case RiskTolerance.cautious:
|
|
|
|
return 'Exercising caution to minimize potential losses';
|
|
|
|
case RiskTolerance.balanced:
|
|
|
|
return 'Neutral, carefully weighing potential opportunities and hazards';
|
|
|
|
case RiskTolerance.adaptive:
|
|
|
|
return 'Flexibly responding to changing risk scenarios';
|
|
|
|
case RiskTolerance.riskTaker:
|
|
|
|
return 'Proactively taking risks to maximize rewards';
|
|
|
|
}
|
|
|
|
}
|
2024-05-31 23:55:33 +02:00
|
|
|
|
|
|
|
/// @returns [RiskTolerance.balanced] in case [str] is null or empty
|
|
|
|
static RiskTolerance fromString(String? str) {
|
|
|
|
if (str == null || str.isEmpty) {
|
|
|
|
return RiskTolerance.balanced; // return a default value != null
|
|
|
|
}
|
|
|
|
return RiskTolerance.values.firstWhere(
|
|
|
|
(x) => x.toString() == str,
|
|
|
|
orElse: () =>
|
|
|
|
throw ArgumentError('Invalid RiskTolerance enum value: $str'),
|
|
|
|
);
|
|
|
|
}
|
2024-05-22 02:46:46 +02:00
|
|
|
}
|
2024-06-20 22:47:54 +02:00
|
|
|
|
|
|
|
enum SectorOption {
|
|
|
|
agriculture,
|
|
|
|
ai,
|
2024-06-21 02:42:45 +02:00
|
|
|
ar,
|
2024-06-20 22:47:54 +02:00
|
|
|
automotive,
|
2024-06-21 02:42:45 +02:00
|
|
|
beauty,
|
2024-06-20 22:47:54 +02:00
|
|
|
bigdata,
|
|
|
|
blockchain,
|
|
|
|
cloud,
|
2024-06-21 02:42:45 +02:00
|
|
|
construction,
|
|
|
|
consulting,
|
2024-06-20 22:47:54 +02:00
|
|
|
crypto,
|
|
|
|
cybersecurity,
|
2024-06-21 02:42:45 +02:00
|
|
|
ecommerce,
|
2024-06-20 22:47:54 +02:00
|
|
|
education,
|
|
|
|
energy,
|
|
|
|
fashion,
|
|
|
|
finance,
|
|
|
|
food,
|
|
|
|
gaming,
|
2024-06-21 02:42:45 +02:00
|
|
|
hardware,
|
2024-06-20 22:47:54 +02:00
|
|
|
healthcare,
|
|
|
|
home,
|
|
|
|
industry,
|
|
|
|
insurance,
|
|
|
|
iot,
|
2024-06-21 02:42:45 +02:00
|
|
|
it,
|
2024-06-20 22:47:54 +02:00
|
|
|
legal,
|
|
|
|
ml,
|
2024-06-21 02:42:45 +02:00
|
|
|
marketing,
|
2024-06-20 22:47:54 +02:00
|
|
|
media,
|
2024-06-21 02:42:45 +02:00
|
|
|
mobility,
|
2024-06-20 22:47:54 +02:00
|
|
|
pharma,
|
|
|
|
retail,
|
|
|
|
robotics,
|
|
|
|
saas,
|
|
|
|
sports,
|
2024-06-21 02:42:45 +02:00
|
|
|
software,
|
|
|
|
telecommunication,
|
|
|
|
transport,
|
|
|
|
travel,
|
|
|
|
vr,
|
|
|
|
web,
|
|
|
|
other;
|
2024-06-20 22:47:54 +02:00
|
|
|
|
|
|
|
String get displayName {
|
|
|
|
switch (this) {
|
|
|
|
case SectorOption.agriculture:
|
|
|
|
return 'Agriculture';
|
|
|
|
case SectorOption.ai:
|
|
|
|
return 'Artificial Intelligence';
|
2024-06-21 02:42:45 +02:00
|
|
|
case SectorOption.ar:
|
|
|
|
return 'Augmented Reality';
|
2024-06-20 22:47:54 +02:00
|
|
|
case SectorOption.automotive:
|
|
|
|
return 'Automotive';
|
2024-06-21 02:42:45 +02:00
|
|
|
case SectorOption.beauty:
|
|
|
|
return 'Beauty and Personal Care';
|
2024-06-20 22:47:54 +02:00
|
|
|
case SectorOption.bigdata:
|
|
|
|
return 'Big Data';
|
|
|
|
case SectorOption.blockchain:
|
|
|
|
return 'Blockchain';
|
|
|
|
case SectorOption.cloud:
|
|
|
|
return 'Cloud Computing';
|
2024-06-21 02:42:45 +02:00
|
|
|
case SectorOption.construction:
|
|
|
|
return 'Construction and Real Estate';
|
|
|
|
case SectorOption.consulting:
|
|
|
|
return 'Consulting and Agency';
|
2024-06-20 22:47:54 +02:00
|
|
|
case SectorOption.crypto:
|
2024-06-21 02:42:45 +02:00
|
|
|
return 'Cryptocurrencies and Digital Assets';
|
2024-06-20 22:47:54 +02:00
|
|
|
case SectorOption.cybersecurity:
|
|
|
|
return 'Cybersecurity';
|
2024-06-21 02:42:45 +02:00
|
|
|
case SectorOption.ecommerce:
|
|
|
|
return 'E-Commerce';
|
2024-06-20 22:47:54 +02:00
|
|
|
case SectorOption.education:
|
|
|
|
return 'Education';
|
|
|
|
case SectorOption.energy:
|
|
|
|
return 'Energy and Environment';
|
|
|
|
case SectorOption.fashion:
|
|
|
|
return 'Fashion and Lifestyle';
|
|
|
|
case SectorOption.finance:
|
|
|
|
return 'Finance';
|
|
|
|
case SectorOption.food:
|
|
|
|
return 'Food and Beverage';
|
|
|
|
case SectorOption.gaming:
|
|
|
|
return 'Gaming';
|
2024-06-21 02:42:45 +02:00
|
|
|
case SectorOption.hardware:
|
|
|
|
return 'Hardware';
|
2024-06-20 22:47:54 +02:00
|
|
|
case SectorOption.healthcare:
|
|
|
|
return 'Healthcare';
|
|
|
|
case SectorOption.home:
|
|
|
|
return 'Home and Garden';
|
|
|
|
case SectorOption.industry:
|
|
|
|
return 'Industry';
|
|
|
|
case SectorOption.insurance:
|
|
|
|
return 'Insurance';
|
|
|
|
case SectorOption.iot:
|
|
|
|
return 'Internet of Things';
|
2024-06-21 02:42:45 +02:00
|
|
|
case SectorOption.it:
|
|
|
|
return 'IT';
|
2024-06-20 22:47:54 +02:00
|
|
|
case SectorOption.legal:
|
|
|
|
return 'Legal and Compliance';
|
|
|
|
case SectorOption.ml:
|
|
|
|
return 'Machine Learning';
|
2024-06-21 02:42:45 +02:00
|
|
|
case SectorOption.marketing:
|
|
|
|
return 'Marketing and Advertising';
|
2024-06-20 22:47:54 +02:00
|
|
|
case SectorOption.media:
|
|
|
|
return 'Media and Entertainment';
|
2024-06-21 02:42:45 +02:00
|
|
|
case SectorOption.mobility:
|
|
|
|
return 'Mobility';
|
2024-06-20 22:47:54 +02:00
|
|
|
case SectorOption.pharma:
|
|
|
|
return 'Pharma';
|
|
|
|
case SectorOption.retail:
|
|
|
|
return 'Retail';
|
|
|
|
case SectorOption.robotics:
|
|
|
|
return 'Robotics';
|
|
|
|
case SectorOption.saas:
|
|
|
|
return 'SaaS';
|
|
|
|
case SectorOption.sports:
|
|
|
|
return 'Sports and Fitness';
|
2024-06-21 02:42:45 +02:00
|
|
|
case SectorOption.software:
|
|
|
|
return 'Software';
|
|
|
|
case SectorOption.telecommunication:
|
|
|
|
return 'Telecommunications';
|
|
|
|
case SectorOption.transport:
|
|
|
|
return 'Transport and Logistics';
|
2024-06-20 22:47:54 +02:00
|
|
|
case SectorOption.travel:
|
|
|
|
return 'Travel';
|
2024-06-21 02:42:45 +02:00
|
|
|
case SectorOption.vr:
|
|
|
|
return 'Virtual Reality';
|
|
|
|
case SectorOption.web:
|
|
|
|
return 'Web';
|
|
|
|
case SectorOption.other:
|
|
|
|
return 'Other';
|
2024-06-20 22:47:54 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|