Yin Bin преди 4 месеца
родител
ревизия
70890834d5

+ 91 - 0
app/Enums/CommentStatus.php

@@ -0,0 +1,91 @@
+<?php
+
+namespace App\Enums;
+
+/**
+ * 评论状态枚举类
+ */
+enum CommentStatus: int
+{
+    /**
+     * 评论状态:待评论
+     */
+    case PENDING = 1;
+
+    /**
+     * 评论状态:已评论
+     */
+    case COMMENTED = 2;
+
+    /**
+     * 获取状态的显示文本
+     *
+     * @return string 状态的中文描述
+     */
+    public function label(): string
+    {
+        return match($this) {
+            self::PENDING => '待评论',
+            self::COMMENTED => '已评论',
+        };
+    }
+
+    /**
+     * 获取状态的整数值
+     *
+     * @return int 状态值
+     */
+    public function value(): int
+    {
+        return $this->value;
+    }
+
+    /**
+     * 检查当前状态是否与指定状态相同
+     *
+     * @param self $status 要比较的状态
+     * @return bool 如果状态相同返回 true,否则返回 false
+     */
+    public function is(self $status): bool
+    {
+        return $this === $status;
+    }
+
+    /**
+     * 根据整数值创建对应的状态枚举实例
+     *
+     * @param int $value 状态值
+     * @return self|null 返回对应的状态枚举实例,如果值无效则返回 null
+     */
+    public static function fromValue(int $value): ?self
+    {
+        return match($value) {
+            self::PENDING->value => self::PENDING,
+            self::COMMENTED->value => self::COMMENTED,
+            default => null
+        };
+    }
+
+    /**
+     * 获取所有状态的值数组
+     *
+     * @return array 包含所有状态值的数组
+     */
+    public static function values(): array
+    {
+        return array_column(self::cases(), 'value');
+    }
+
+    /**
+     * 获取所有状态的键值对数组
+     *
+     * @return array 状态值作为键,显示文本作为值的关联数组
+     */
+    public static function all(): array
+    {
+        return [
+            self::PENDING->value => self::PENDING->label(),
+            self::COMMENTED->value => self::COMMENTED->label(),
+        ];
+    }
+}

+ 99 - 0
app/Enums/GrabOrderStatus.php

@@ -0,0 +1,99 @@
+<?php
+
+namespace App\Enums;
+
+/**
+ * 抢单状态枚举类
+ */
+enum GrabOrderStatus: int
+{
+    /**
+     * 抢单状态:待抢单
+     */
+    case PENDING = 1;
+
+    /**
+     * 抢单状态:已抢单
+     */
+    case GRABBED = 2;
+
+    /**
+     * 抢单状态:已过期
+     */
+    case EXPIRED = 3;
+
+    /**
+     * 获取状态的显示文本
+     *
+     * @return string 状态的中文描述
+     */
+    public function label(): string
+    {
+        return match($this) {
+            self::PENDING => '待抢单',
+            self::GRABBED => '已抢单',
+            self::EXPIRED => '已过期',
+        };
+    }
+
+    /**
+     * 获取状态的整数值
+     *
+     * @return int 状态值
+     */
+    public function value(): int
+    {
+        return $this->value;
+    }
+
+    /**
+     * 检查当前状态是否与指定状态相同
+     *
+     * @param self $status 要比较的状态
+     * @return bool 如果状态相同返回 true,否则返回 false
+     */
+    public function is(self $status): bool
+    {
+        return $this === $status;
+    }
+
+    /**
+     * 根据整数值创建对应的状态枚举实例
+     *
+     * @param int $value 状态值
+     * @return self|null 返回对应的状态枚举实例,如果值无效则返回 null
+     */
+    public static function fromValue(int $value): ?self
+    {
+        return match($value) {
+            self::PENDING->value => self::PENDING,
+            self::GRABBED->value => self::GRABBED,
+            self::EXPIRED->value => self::EXPIRED,
+            default => null
+        };
+    }
+
+    /**
+     * 获取所有状态的值数组
+     *
+     * @return array 包含所有状态值的数组
+     */
+    public static function values(): array
+    {
+        return array_column(self::cases(), 'value');
+    }
+
+    /**
+     * 获取所有状态的键值对数组
+     *
+     * @return array 状态值作为键,显示文本作为值的关联数组
+     */
+    public static function all(): array
+    {
+        return [
+            self::PENDING->value => self::PENDING->label(),
+            self::GRABBED->value => self::GRABBED->label(),
+            self::EXPIRED->value => self::EXPIRED->label(),
+        ];
+    }
+}

+ 107 - 0
app/Enums/OrderDistributionObject.php

@@ -0,0 +1,107 @@
+<?php
+
+namespace App\Enums;
+
+/**
+ * 订单分销对象枚举类
+ */
+enum OrderDistributionObject: int
+{
+    /**
+     * 分销对象:技师
+     */
+    case TECHNICIAN = 1;
+
+    /**
+     * 分销对象:店铺
+     */
+    case SHOP = 2;
+
+    /**
+     * 分销对象:代理商
+     */
+    case AGENT = 3;
+
+    /**
+     * 分销对象:推广员
+     */
+    case PROMOTER = 4;
+
+    /**
+     * 获取对象的显示文本
+     *
+     * @return string 对象的中文描述
+     */
+    public function label(): string
+    {
+        return match($this) {
+            self::TECHNICIAN => '技师',
+            self::SHOP => '店铺',
+            self::AGENT => '代理商',
+            self::PROMOTER => '推广员',
+        };
+    }
+
+    /**
+     * 获取对象的整数值
+     *
+     * @return int 对象值
+     */
+    public function value(): int
+    {
+        return $this->value;
+    }
+
+    /**
+     * 检查当前对象是否与指定对象相同
+     *
+     * @param self $object 要比较的对象
+     * @return bool 如果对象相同返回 true,否则返回 false
+     */
+    public function is(self $object): bool
+    {
+        return $this === $object;
+    }
+
+    /**
+     * 根据整数值创建对应的对象枚举实例
+     *
+     * @param int $value 对象值
+     * @return self|null 返回对应的对象枚举实例,如果值无效则返回 null
+     */
+    public static function fromValue(int $value): ?self
+    {
+        return match($value) {
+            self::TECHNICIAN->value => self::TECHNICIAN,
+            self::SHOP->value => self::SHOP,
+            self::AGENT->value => self::AGENT,
+            self::PROMOTER->value => self::PROMOTER,
+            default => null
+        };
+    }
+
+    /**
+     * 获取所有对象的值数组
+     *
+     * @return array 包含所有对象值的数组
+     */
+    public static function values(): array
+    {
+        return array_column(self::cases(), 'value');
+    }
+
+    /**
+     * 获取所有对象的键值对数组
+     *
+     * @return array 对象值作为键,显示文本作为值的关联数组
+     */
+    public static function all(): array
+    {
+        return [
+            self::TECHNICIAN->value => self::TECHNICIAN->label(),
+            self::SHOP->value => self::SHOP->label(),
+            self::AGENT->value => self::AGENT->label(),
+            self::PROMOTER->value => self::PROMOTER->label(),
+        ];
+    }
+}

+ 107 - 0
app/Enums/OrderDistributionType.php

@@ -0,0 +1,107 @@
+<?php
+
+namespace App\Enums;
+
+/**
+ * 订单分销类型枚举类
+ */
+enum OrderDistributionType: int
+{
+    /**
+     * 分销类型:平台分销
+     */
+    case PLATFORM = 1;
+
+    /**
+     * 分销类型:店铺分销
+     */
+    case SHOP = 2;
+
+    /**
+     * 分销类型:个人分销
+     */
+    case PERSONAL = 3;
+
+    /**
+     * 分销类型:团队分销
+     */
+    case TEAM = 4;
+
+    /**
+     * 获取类型的显示文本
+     *
+     * @return string 类型的中文描述
+     */
+    public function label(): string
+    {
+        return match($this) {
+            self::PLATFORM => '平台分销',
+            self::SHOP => '店铺分销',
+            self::PERSONAL => '个人分销',
+            self::TEAM => '团队分销',
+        };
+    }
+
+    /**
+     * 获取类型的整数值
+     *
+     * @return int 类型值
+     */
+    public function value(): int
+    {
+        return $this->value;
+    }
+
+    /**
+     * 检查当前类型是否与指定类型相同
+     *
+     * @param self $type 要比较的类型
+     * @return bool 如果类型相同返回 true,否则返回 false
+     */
+    public function is(self $type): bool
+    {
+        return $this === $type;
+    }
+
+    /**
+     * 根据整数值创建对应的类型枚举实例
+     *
+     * @param int $value 类型值
+     * @return self|null 返回对应的类型枚举实例,如果值无效则返回 null
+     */
+    public static function fromValue(int $value): ?self
+    {
+        return match($value) {
+            self::PLATFORM->value => self::PLATFORM,
+            self::SHOP->value => self::SHOP,
+            self::PERSONAL->value => self::PERSONAL,
+            self::TEAM->value => self::TEAM,
+            default => null
+        };
+    }
+
+    /**
+     * 获取所有类型的值数组
+     *
+     * @return array 包含所有类型值的数组
+     */
+    public static function values(): array
+    {
+        return array_column(self::cases(), 'value');
+    }
+
+    /**
+     * 获取所有类型的键值对数组
+     *
+     * @return array 类型值作为键,显示文本作为值的关联数组
+     */
+    public static function all(): array
+    {
+        return [
+            self::PLATFORM->value => self::PLATFORM->label(),
+            self::SHOP->value => self::SHOP->label(),
+            self::PERSONAL->value => self::PERSONAL->label(),
+            self::TEAM->value => self::TEAM->label(),
+        ];
+    }
+}

+ 107 - 0
app/Enums/OrderExceptionStatus.php

@@ -0,0 +1,107 @@
+<?php
+
+namespace App\Enums;
+
+/**
+ * 订单异常状态枚举类
+ */
+enum OrderExceptionStatus: int
+{
+    /**
+     * 异常状态:待处理
+     */
+    case PENDING = 1;
+
+    /**
+     * 异常状态:处理中
+     */
+    case PROCESSING = 2;
+
+    /**
+     * 异常状态:已解决
+     */
+    case RESOLVED = 3;
+
+    /**
+     * 异常状态:已取消
+     */
+    case CANCELLED = 4;
+
+    /**
+     * 获取状态的显示文本
+     *
+     * @return string 状态的中文描述
+     */
+    public function label(): string
+    {
+        return match($this) {
+            self::PENDING => '待处理',
+            self::PROCESSING => '处理中',
+            self::RESOLVED => '已解决',
+            self::CANCELLED => '已取消',
+        };
+    }
+
+    /**
+     * 获取状态的整数值
+     *
+     * @return int 状态值
+     */
+    public function value(): int
+    {
+        return $this->value;
+    }
+
+    /**
+     * 检查当前状态是否与指定状态相同
+     *
+     * @param self $status 要比较的状态
+     * @return bool 如果状态相同返回 true,否则返回 false
+     */
+    public function is(self $status): bool
+    {
+        return $this === $status;
+    }
+
+    /**
+     * 根据整数值创建对应的状态枚举实例
+     *
+     * @param int $value 状态值
+     * @return self|null 返回对应的状态枚举实例,如果值无效则返回 null
+     */
+    public static function fromValue(int $value): ?self
+    {
+        return match($value) {
+            self::PENDING->value => self::PENDING,
+            self::PROCESSING->value => self::PROCESSING,
+            self::RESOLVED->value => self::RESOLVED,
+            self::CANCELLED->value => self::CANCELLED,
+            default => null
+        };
+    }
+
+    /**
+     * 获取所有状态的值数组
+     *
+     * @return array 包含所有状态值的数组
+     */
+    public static function values(): array
+    {
+        return array_column(self::cases(), 'value');
+    }
+
+    /**
+     * 获取所有状态的键值对数组
+     *
+     * @return array 状态值作为键,显示文本作为值的关联数组
+     */
+    public static function all(): array
+    {
+        return [
+            self::PENDING->value => self::PENDING->label(),
+            self::PROCESSING->value => self::PROCESSING->label(),
+            self::RESOLVED->value => self::RESOLVED->label(),
+            self::CANCELLED->value => self::CANCELLED->label(),
+        ];
+    }
+}

+ 139 - 0
app/Enums/OrderRecordStatus.php

@@ -0,0 +1,139 @@
+<?php
+
+namespace App\Enums;
+
+/**
+ * 订单记录状态枚举类
+ */
+enum OrderRecordStatus: int
+{
+    /**
+     * 记录状态:创建订单
+     */
+    case CREATED = 1;
+
+    /**
+     * 记录状态:支付完成
+     */
+    case PAID = 2;
+
+    /**
+     * 记录状态:已分配技师
+     */
+    case ASSIGNED = 3;
+
+    /**
+     * 记录状态:技师到达
+     */
+    case ARRIVED = 4;
+
+    /**
+     * 记录状态:开始服务
+     */
+    case STARTED = 5;
+
+    /**
+     * 记录状态:服务完成
+     */
+    case COMPLETED = 6;
+
+    /**
+     * 记录状态:已评价
+     */
+    case EVALUATED = 7;
+
+    /**
+     * 记录状态:已取消
+     */
+    case CANCELLED = 8;
+
+    /**
+     * 获取状态的显示文本
+     *
+     * @return string 状态的中文描述
+     */
+    public function label(): string
+    {
+        return match($this) {
+            self::CREATED => '创建订单',
+            self::PAID => '支付完成',
+            self::ASSIGNED => '已分配技师',
+            self::ARRIVED => '技师到达',
+            self::STARTED => '开始服务',
+            self::COMPLETED => '服务完成',
+            self::EVALUATED => '已评价',
+            self::CANCELLED => '已取消',
+        };
+    }
+
+    /**
+     * 获取状态的整数值
+     *
+     * @return int 状态值
+     */
+    public function value(): int
+    {
+        return $this->value;
+    }
+
+    /**
+     * 检查当前状态是否与指定状态相同
+     *
+     * @param self $status 要比较的状态
+     * @return bool 如果状态相同返回 true,否则返回 false
+     */
+    public function is(self $status): bool
+    {
+        return $this === $status;
+    }
+
+    /**
+     * 根据整数值创建对应的状态枚举实例
+     *
+     * @param int $value 状态值
+     * @return self|null 返回对应的状态枚举实例,如果值无效则返回 null
+     */
+    public static function fromValue(int $value): ?self
+    {
+        return match($value) {
+            self::CREATED->value => self::CREATED,
+            self::PAID->value => self::PAID,
+            self::ASSIGNED->value => self::ASSIGNED,
+            self::ARRIVED->value => self::ARRIVED,
+            self::STARTED->value => self::STARTED,
+            self::COMPLETED->value => self::COMPLETED,
+            self::EVALUATED->value => self::EVALUATED,
+            self::CANCELLED->value => self::CANCELLED,
+            default => null
+        };
+    }
+
+    /**
+     * 获取所有状态的值数组
+     *
+     * @return array 包含所有状态值的数组
+     */
+    public static function values(): array
+    {
+        return array_column(self::cases(), 'value');
+    }
+
+    /**
+     * 获取所有状态的键值对数组
+     *
+     * @return array 状态值作为键,显示文本作为值的关联数组
+     */
+    public static function all(): array
+    {
+        return [
+            self::CREATED->value => self::CREATED->label(),
+            self::PAID->value => self::PAID->label(),
+            self::ASSIGNED->value => self::ASSIGNED->label(),
+            self::ARRIVED->value => self::ARRIVED->label(),
+            self::STARTED->value => self::STARTED->label(),
+            self::COMPLETED->value => self::COMPLETED->label(),
+            self::EVALUATED->value => self::EVALUATED->label(),
+            self::CANCELLED->value => self::CANCELLED->label(),
+        ];
+    }
+}

+ 99 - 0
app/Enums/ShopContractStatus.php

@@ -0,0 +1,99 @@
+<?php
+
+namespace App\Enums;
+
+/**
+ * 店铺签约状态枚举类
+ */
+enum ShopContractStatus: int
+{
+    /**
+     * 签约状态:签约中
+     */
+    case SIGNING = 1;
+
+    /**
+     * 签约状态:已签约
+     */
+    case SIGNED = 2;
+
+    /**
+     * 签约状态:已解约
+     */
+    case TERMINATED = 3;
+
+    /**
+     * 获取状态的显示文本
+     *
+     * @return string 状态的中文描述
+     */
+    public function label(): string
+    {
+        return match($this) {
+            self::SIGNING => '签约中',
+            self::SIGNED => '已签约',
+            self::TERMINATED => '已解约',
+        };
+    }
+
+    /**
+     * 获取状态的整数值
+     *
+     * @return int 状态值
+     */
+    public function value(): int
+    {
+        return $this->value;
+    }
+
+    /**
+     * 检查当前状态是否与指定状态相同
+     *
+     * @param self $status 要比较的状态
+     * @return bool 如果状态相同返回 true,否则返回 false
+     */
+    public function is(self $status): bool
+    {
+        return $this === $status;
+    }
+
+    /**
+     * 根据整数值创建对应的状态枚举实例
+     *
+     * @param int $value 状态值
+     * @return self|null 返回对应的状态枚举实例,如果值无效则返回 null
+     */
+    public static function fromValue(int $value): ?self
+    {
+        return match($value) {
+            self::SIGNING->value => self::SIGNING,
+            self::SIGNED->value => self::SIGNED,
+            self::TERMINATED->value => self::TERMINATED,
+            default => null
+        };
+    }
+
+    /**
+     * 获取所有状态的值数组
+     *
+     * @return array 包含所有状态值的数组
+     */
+    public static function values(): array
+    {
+        return array_column(self::cases(), 'value');
+    }
+
+    /**
+     * 获取所有状态的键值对数组
+     *
+     * @return array 状态值作为键,显示文本作为值的关联数组
+     */
+    public static function all(): array
+    {
+        return [
+            self::SIGNING->value => self::SIGNING->label(),
+            self::SIGNED->value => self::SIGNED->label(),
+            self::TERMINATED->value => self::TERMINATED->label(),
+        ];
+    }
+}

+ 115 - 0
app/Enums/SocialPlatform.php

@@ -0,0 +1,115 @@
+<?php
+
+namespace App\Enums;
+
+/**
+ * 社交平台枚举类
+ */
+enum SocialPlatform: int
+{
+    /**
+     * 社交平台:微信
+     */
+    case WECHAT = 1;
+
+    /**
+     * 社交平台:QQ
+     */
+    case QQ = 2;
+
+    /**
+     * 社交平台:微博
+     */
+    case WEIBO = 3;
+
+    /**
+     * 社交平台:抖音
+     */
+    case DOUYIN = 4;
+
+    /**
+     * 社交平台:小红书
+     */
+    case XIAOHONGSHU = 5;
+
+    /**
+     * 获取平台的显示文本
+     *
+     * @return string 平台的中文描述
+     */
+    public function label(): string
+    {
+        return match($this) {
+            self::WECHAT => '微信',
+            self::QQ => 'QQ',
+            self::WEIBO => '微博',
+            self::DOUYIN => '抖音',
+            self::XIAOHONGSHU => '小红书',
+        };
+    }
+
+    /**
+     * 获取平台的整数值
+     *
+     * @return int 平台值
+     */
+    public function value(): int
+    {
+        return $this->value;
+    }
+
+    /**
+     * 检查当前平台是否与指定平台相同
+     *
+     * @param self $platform 要比较的平台
+     * @return bool 如果平台相同返回 true,否则返回 false
+     */
+    public function is(self $platform): bool
+    {
+        return $this === $platform;
+    }
+
+    /**
+     * 根据整数值创建对应的平台枚举实例
+     *
+     * @param int $value 平台值
+     * @return self|null 返回对应的平台枚举实例,如果值无效则返回 null
+     */
+    public static function fromValue(int $value): ?self
+    {
+        return match($value) {
+            self::WECHAT->value => self::WECHAT,
+            self::QQ->value => self::QQ,
+            self::WEIBO->value => self::WEIBO,
+            self::DOUYIN->value => self::DOUYIN,
+            self::XIAOHONGSHU->value => self::XIAOHONGSHU,
+            default => null
+        };
+    }
+
+    /**
+     * 获取所有平台的值数组
+     *
+     * @return array 包含所有平台值的数组
+     */
+    public static function values(): array
+    {
+        return array_column(self::cases(), 'value');
+    }
+
+    /**
+     * 获取所有平台的键值对数组
+     *
+     * @return array 平台值作为键,显示文本作为值的关联数组
+     */
+    public static function all(): array
+    {
+        return [
+            self::WECHAT->value => self::WECHAT->label(),
+            self::QQ->value => self::QQ->label(),
+            self::WEIBO->value => self::WEIBO->label(),
+            self::DOUYIN->value => self::DOUYIN->label(),
+            self::XIAOHONGSHU->value => self::XIAOHONGSHU->label(),
+        ];
+    }
+}

+ 107 - 0
app/Enums/TechnicianAlarmType.php

@@ -0,0 +1,107 @@
+<?php
+
+namespace App\Enums;
+
+/**
+ * 技师报警类型枚举类
+ */
+enum TechnicianAlarmType: int
+{
+    /**
+     * 报警类型:紧急求助
+     */
+    case EMERGENCY = 1;
+
+    /**
+     * 报警类型:骚扰投诉
+     */
+    case HARASSMENT = 2;
+
+    /**
+     * 报警类型:纠纷
+     */
+    case DISPUTE = 3;
+
+    /**
+     * 报警类型:其他
+     */
+    case OTHER = 4;
+
+    /**
+     * 获取类型的显示文本
+     *
+     * @return string 类型的中文描述
+     */
+    public function label(): string
+    {
+        return match($this) {
+            self::EMERGENCY => '紧急求助',
+            self::HARASSMENT => '骚扰投诉',
+            self::DISPUTE => '纠纷',
+            self::OTHER => '其他',
+        };
+    }
+
+    /**
+     * 获取类型的整数值
+     *
+     * @return int 类型值
+     */
+    public function value(): int
+    {
+        return $this->value;
+    }
+
+    /**
+     * 检查当前类型是否与指定类型相同
+     *
+     * @param self $type 要比较的类型
+     * @return bool 如果类型相同返回 true,否则返回 false
+     */
+    public function is(self $type): bool
+    {
+        return $this === $type;
+    }
+
+    /**
+     * 根据整数值创建对应的类型枚举实例
+     *
+     * @param int $value 类型值
+     * @return self|null 返回对应的类型枚举实例,如果值无效则返回 null
+     */
+    public static function fromValue(int $value): ?self
+    {
+        return match($value) {
+            self::EMERGENCY->value => self::EMERGENCY,
+            self::HARASSMENT->value => self::HARASSMENT,
+            self::DISPUTE->value => self::DISPUTE,
+            self::OTHER->value => self::OTHER,
+            default => null
+        };
+    }
+
+    /**
+     * 获取所有类型的值数组
+     *
+     * @return array 包含所有类型值的数组
+     */
+    public static function values(): array
+    {
+        return array_column(self::cases(), 'value');
+    }
+
+    /**
+     * 获取所有类型的键值对数组
+     *
+     * @return array 类型值作为键,显示文本作为值的关联数组
+     */
+    public static function all(): array
+    {
+        return [
+            self::EMERGENCY->value => self::EMERGENCY->label(),
+            self::HARASSMENT->value => self::HARASSMENT->label(),
+            self::DISPUTE->value => self::DISPUTE->label(),
+            self::OTHER->value => self::OTHER->label(),
+        ];
+    }
+}

+ 99 - 0
app/Enums/TechnicianAuthStatus.php

@@ -0,0 +1,99 @@
+<?php
+
+namespace App\Enums;
+
+/**
+ * 技师认证状态枚举类
+ */
+enum TechnicianAuthStatus: int
+{
+    /**
+     * 认证状态:审核中
+     */
+    case AUDITING = 1;
+
+    /**
+     * 认证状态:审核通过
+     */
+    case PASSED = 2;
+
+    /**
+     * 认证状态:审核拒绝
+     */
+    case REJECTED = 3;
+
+    /**
+     * 获取状态的显示文本
+     *
+     * @return string 状态的中文描述
+     */
+    public function label(): string
+    {
+        return match($this) {
+            self::AUDITING => '审核中',
+            self::PASSED => '审核通过',
+            self::REJECTED => '审核拒绝',
+        };
+    }
+
+    /**
+     * 获取状态的整数值
+     *
+     * @return int 状态值
+     */
+    public function value(): int
+    {
+        return $this->value;
+    }
+
+    /**
+     * 检查当前状态是否与指定状态相同
+     *
+     * @param self $status 要比较的状态
+     * @return bool 如果状态相同返回 true,否则返回 false
+     */
+    public function is(self $status): bool
+    {
+        return $this === $status;
+    }
+
+    /**
+     * 根据整数值创建对应的状态枚举实例
+     *
+     * @param int $value 状态值
+     * @return self|null 返回对应的状态枚举实例,如果值无效则返回 null
+     */
+    public static function fromValue(int $value): ?self
+    {
+        return match($value) {
+            self::AUDITING->value => self::AUDITING,
+            self::PASSED->value => self::PASSED,
+            self::REJECTED->value => self::REJECTED,
+            default => null
+        };
+    }
+
+    /**
+     * 获取所有状态的值数组
+     *
+     * @return array 包含所有状态值的数组
+     */
+    public static function values(): array
+    {
+        return array_column(self::cases(), 'value');
+    }
+
+    /**
+     * 获取所有状态的键值对数组
+     *
+     * @return array 状态值作为键,显示文本作为值的关联数组
+     */
+    public static function all(): array
+    {
+        return [
+            self::AUDITING->value => self::AUDITING->label(),
+            self::PASSED->value => self::PASSED->label(),
+            self::REJECTED->value => self::REJECTED->label(),
+        ];
+    }
+}

+ 107 - 0
app/Enums/TechnicianExpSource.php

@@ -0,0 +1,107 @@
+<?php
+
+namespace App\Enums;
+
+/**
+ * 技师经验来源枚举类
+ */
+enum TechnicianExpSource: int
+{
+    /**
+     * 经验来源:订单
+     */
+    case ORDER = 1;
+
+    /**
+     * 经验来源:加钟
+     */
+    case OVERTIME = 2;
+
+    /**
+     * 经验来源:评价
+     */
+    case COMMENT = 3;
+
+    /**
+     * 经验来源:推广
+     */
+    case PROMOTION = 4;
+
+    /**
+     * 获取来源的显示文本
+     *
+     * @return string 来源的中文描述
+     */
+    public function label(): string
+    {
+        return match($this) {
+            self::ORDER => '订单',
+            self::OVERTIME => '加钟',
+            self::COMMENT => '评价',
+            self::PROMOTION => '推广',
+        };
+    }
+
+    /**
+     * 获取来源的整数值
+     *
+     * @return int 来源值
+     */
+    public function value(): int
+    {
+        return $this->value;
+    }
+
+    /**
+     * 检查当前来源是否与指定来源相同
+     *
+     * @param self $source 要比较的来源
+     * @return bool 如果来源相同返回 true,否则返回 false
+     */
+    public function is(self $source): bool
+    {
+        return $this === $source;
+    }
+
+    /**
+     * 根据整数值创建对应的来源枚举实例
+     *
+     * @param int $value 来源值
+     * @return self|null 返回对应的来源枚举实例,如果值无效则返回 null
+     */
+    public static function fromValue(int $value): ?self
+    {
+        return match($value) {
+            self::ORDER->value => self::ORDER,
+            self::OVERTIME->value => self::OVERTIME,
+            self::COMMENT->value => self::COMMENT,
+            self::PROMOTION->value => self::PROMOTION,
+            default => null
+        };
+    }
+
+    /**
+     * 获取所有来源的值数组
+     *
+     * @return array 包含所有来源值的数组
+     */
+    public static function values(): array
+    {
+        return array_column(self::cases(), 'value');
+    }
+
+    /**
+     * 获取所有来源的键值对数组
+     *
+     * @return array 来源值作为键,显示文本作为值的关联数组
+     */
+    public static function all(): array
+    {
+        return [
+            self::ORDER->value => self::ORDER->label(),
+            self::OVERTIME->value => self::OVERTIME->label(),
+            self::COMMENT->value => self::COMMENT->label(),
+            self::PROMOTION->value => self::PROMOTION->label(),
+        ];
+    }
+}

+ 91 - 0
app/Enums/TechnicianLocationType.php

@@ -0,0 +1,91 @@
+<?php
+
+namespace App\Enums;
+
+/**
+ * 技师定位类型枚举类
+ */
+enum TechnicianLocationType: int
+{
+    /**
+     * 定位类型:当前定位
+     */
+    case CURRENT = 1;
+
+    /**
+     * 定位类型:常用定位
+     */
+    case COMMON = 2;
+
+    /**
+     * 获取类型的显示文本
+     *
+     * @return string 类型的中文描述
+     */
+    public function label(): string
+    {
+        return match($this) {
+            self::CURRENT => '当前定位',
+            self::COMMON => '常用定位',
+        };
+    }
+
+    /**
+     * 获取类型的整数值
+     *
+     * @return int 类型值
+     */
+    public function value(): int
+    {
+        return $this->value;
+    }
+
+    /**
+     * 检查当前类型是否与指定类型相同
+     *
+     * @param self $type 要比较的类型
+     * @return bool 如果类型相同返回 true,否则返回 false
+     */
+    public function is(self $type): bool
+    {
+        return $this === $type;
+    }
+
+    /**
+     * 根据整数值创建对应的类型枚举实例
+     *
+     * @param int $value 类型值
+     * @return self|null 返回对应的类型枚举实例,如果值无效则返回 null
+     */
+    public static function fromValue(int $value): ?self
+    {
+        return match($value) {
+            self::CURRENT->value => self::CURRENT,
+            self::COMMON->value => self::COMMON,
+            default => null
+        };
+    }
+
+    /**
+     * 获取所有类型的值数组
+     *
+     * @return array 包含所有类型值的数组
+     */
+    public static function values(): array
+    {
+        return array_column(self::cases(), 'value');
+    }
+
+    /**
+     * 获取所有类型的键值对数组
+     *
+     * @return array 类型值作为键,显示文本作为值的关联数组
+     */
+    public static function all(): array
+    {
+        return [
+            self::CURRENT->value => self::CURRENT->label(),
+            self::COMMON->value => self::COMMON->label(),
+        ];
+    }
+}