Files
chatroom/app/Models/MarriageIntimacyLog.php
lkddi 2d07b032d9 功能:婚姻系统第4-6步(Services + Models)
Step 4 - MarriageConfigService:
- 带60min Cache 的配置读取/写入
- 支持单项/分组/全量读取,管理员保存后自动清缓存

Step 5 - MarriageIntimacyService:
- 亲密度增加 + 日志写入 + 等级自动更新
- Redis 每日上限计数器(各来源独立控制)
- onFlowerSent/onPrivateChat/onlineTick 接入点方法
- dailyBatch 批量处理(Horizon Job 用)

Step 6 - MarriageService(核心业务):
- propose/accept/reject/divorce/confirmDivorce/forceDissolve
- 所有金币魅力通过 UserCurrencyService 统一记账
- 冷静期检查/超时处理/强制离婚金币全转对方

Models 改良(Marriage/MarriageConfig/MarriageIntimacyLog)
2026-03-01 15:03:34 +08:00

55 lines
1.1 KiB
PHP

<?php
/**
* 文件功能:婚姻亲密度日志 Model
*
* 对应 marriage_intimacy_logs 表,记录婚姻亲密度的每一次变更。
* 亲密度属于婚姻对,独立于用户个人的 user_currency_logs。
*
* @author ChatRoom Laravel
*
* @version 1.0.0
*/
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class MarriageIntimacyLog extends Model
{
/** 无 updated_at 字段 */
public const UPDATED_AT = null;
/** @var list<string> */
protected $fillable = [
'marriage_id',
'amount',
'balance_after',
'source',
'remark',
];
/**
* 字段类型转换。
*
* @return array<string, string>
*/
protected function casts(): array
{
return [
'amount' => 'integer',
'balance_after' => 'integer',
'created_at' => 'datetime',
];
}
/**
* 所属婚姻关系。
*/
public function marriage(): BelongsTo
{
return $this->belongsTo(Marriage::class);
}
}