enum MenuSort { nameAsc, nameDesc, timestampAsc, timestampDesc, } enum ViewOrder { swipedFirst, matchedFirst, swipedOnly, matchedOnly, } enum Gender { none, male, female, 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'; } } } 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'; } } } 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, fullTime, flexible; String get displayName { switch (this) { case AvailabilityOption.lessThan10Hours: return 'Less than 10 hours'; case AvailabilityOption.tenTo20Hours: return 'Part-time (10 - 20 hours)'; case AvailabilityOption.twentyTo40Hours: return 'Part-time (20 - 40 hours)'; case AvailabilityOption.fullTime: 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'; } } /// @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'), ); } } 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'; } } /// @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'), ); } } 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'; } } /// @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'), ); } } 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'; } } /// @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'), ); } } enum SectorOption { agriculture, ai, vr, automotive, bigdata, blockchain, cloud, crypto, cybersecurity, education, energy, fashion, finance, food, gaming, healthcare, home, industry, insurance, iot, legal, ml, media, pharma, retail, robotics, saas, sports, travel; String get displayName { switch (this) { case SectorOption.agriculture: return 'Agriculture'; case SectorOption.ai: return 'Artificial Intelligence'; case SectorOption.vr: return 'Augmented/Virtual Reality'; case SectorOption.automotive: return 'Automotive'; case SectorOption.bigdata: return 'Big Data'; case SectorOption.blockchain: return 'Blockchain'; case SectorOption.cloud: return 'Cloud Computing'; case SectorOption.crypto: return 'Cryptocurrencies/Digital Assets'; case SectorOption.cybersecurity: return 'Cybersecurity'; 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'; 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'; case SectorOption.legal: return 'Legal and Compliance'; case SectorOption.ml: return 'Machine Learning'; case SectorOption.media: return 'Media and Entertainment'; 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'; case SectorOption.travel: return 'Travel'; } } }