FarmShrineConfig.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. namespace App\Module\Farm\Models;
  3. use App\Module\Farm\Casts\FarmShrineDisplayAttributesCast;
  4. use App\Module\Farm\Casts\FarmShrineNumericAttributesCast;
  5. use App\Module\Farm\Enums\BUFF_TYPE;
  6. use UCore\ModelCore;
  7. /**
  8. * 神像配置模型
  9. * field start
  10. * @property int $id 主键ID
  11. * @property int $buff_type 神像类型:1丰收之神,2雨露之神,3屠草之神,4拭虫之神
  12. * @property string $name 神像名称
  13. * @property string $description 神像描述
  14. * @property int $duration_hours 默认持续时间(小时)
  15. * @property int $item_id 对应物品ID
  16. * @property \App\Module\Farm\Casts\FarmShrineDisplayAttributesCast $display_attributes 显示属性
  17. * @property \Carbon\Carbon $created_at 创建时间
  18. * @property \Carbon\Carbon $updated_at 更新时间
  19. * field end
  20. */
  21. class FarmShrineConfig extends ModelCore
  22. {
  23. /**
  24. * 与模型关联的表名
  25. *
  26. * @var string
  27. */
  28. protected $table = 'farm_shrine_configs';
  29. // attrlist start
  30. protected $fillable = [
  31. 'id',
  32. 'buff_type',
  33. 'name',
  34. 'description',
  35. 'duration_hours',
  36. 'item_id',
  37. 'display_attributes',
  38. ];
  39. // attrlist end
  40. /**
  41. * 应该被转换为原生类型的属性
  42. *
  43. * @var array
  44. */
  45. protected $casts = [
  46. 'buff_type' => 'integer',
  47. 'duration_hours' => 'integer',
  48. 'item_id' => 'integer',
  49. 'display_attributes' => FarmShrineDisplayAttributesCast::class,
  50. 'numeric_attributes' => FarmShrineNumericAttributesCast::class,
  51. ];
  52. /**
  53. * 获取神像类型名称
  54. *
  55. * @return string
  56. */
  57. public function getBuffTypeName(): string
  58. {
  59. return BUFF_TYPE::getName($this->buff_type);
  60. }
  61. /**
  62. * 获取神像效果描述
  63. *
  64. * @return string
  65. */
  66. public function getBuffDescription(): string
  67. {
  68. return BUFF_TYPE::getDescription($this->buff_type);
  69. }
  70. }