'integer', 'urs_referrer_id' => 'integer', 'user_id' => 'integer', 'referrer_id' => 'integer', 'referral_time' => 'datetime', 'status' => 'integer', 'created_at' => 'datetime', 'updated_at' => 'datetime', ]; /** * 状态常量 */ const STATUS_INVALID = 0; // 无效 const STATUS_VALID = 1; // 有效 /** * 获取用户映射关系 */ public function userMapping(): BelongsTo { return $this->belongsTo(UrsUserMapping::class, 'urs_user_id', 'urs_user_id'); } /** * 获取推荐人映射关系 */ public function referrerMapping(): BelongsTo { return $this->belongsTo(UrsUserMapping::class, 'urs_referrer_id', 'urs_user_id'); } /** * 获取农场用户信息(通过映射关系) */ public function farmUser() { return $this->userMapping()->with('user.info'); } /** * 获取推荐人农场用户信息(通过映射关系) */ public function referrerFarmUser() { return $this->referrerMapping()->with('user.info'); } /** * 获取农场用户信息(直接关联) */ public function user(): BelongsTo { return $this->belongsTo(\App\Module\User\Models\User::class, 'user_id'); } /** * 获取推荐人农场用户信息(直接关联) */ public function referrer(): BelongsTo { return $this->belongsTo(\App\Module\User\Models\User::class, 'referrer_id'); } /** * 检查推荐关系是否有效 */ public function isValid(): bool { return $this->status === self::STATUS_VALID; } /** * 设置为有效状态 */ public function setValid(): void { $this->status = self::STATUS_VALID; } /** * 设置为无效状态 */ public function setInvalid(): void { $this->status = self::STATUS_INVALID; } /** * 获取状态文本 */ public function getStatusText(): string { return match($this->status) { self::STATUS_VALID => '有效', self::STATUS_INVALID => '无效', default => '未知', }; } }