Component({
  properties: {
    /** 评分 0-10，内部转换为 0-5 星，支持半星 */
    score: {
      type: Number,
      value: 0,
    },
    /** 星星尺寸 */
    size: {
      type: String,
      value: '40rpx',
    },
    /** 是否只读 */
    readonly: {
      type: Boolean,
      value: true,
    },
  },

  observers: {
    score(val: number) {
      // score(0-10) → star(0-5)，支持半星（如 7.5 → 3.75星）
      const clamped = Math.max(0, Math.min(10, val))
      this.setData({ starValue: clamped / 2 })
    },
  },

  data: {
    starValue: 0,
  },

  lifetimes: {
    attached() {
      const clamped = Math.max(0, Math.min(10, this.data.score))
      this.setData({ starValue: clamped / 2 })
    },
  },
})
