纯裁决(不抛·P1 result-union):used + adding 是否仍在限额内。
目标租户 id
本次预计新增成员数(默认 1)
座位配额裁决结果(ok/used/limit)
当前用量 = 该租户成员数。
目标租户 id
成员数量
当前生效订阅(最新 active 行 by periodStart desc),无 → null。
目标租户 id
生效订阅视图;无 active 行返回 null
生效座位限额(P2 · Quota VO):有 active 订阅 → 摄入其 seatsLimit;无 → FREE_PLAN 档。
目标租户 id
承载不变量的 Quota 限额
读侧单点快照(S7 · FR-7/FR-8):当前生效订阅 + 座位用量 + FR-8 customer 映射。
目标租户 id
生效档位/用量/映射的读侧快照
租户配额读写唯一卡点(S7 · FR-7):生效限额取自最新 active 订阅行的
seatsLimit快照。Remarks
缺行回落
FREE_PLAN(带限额·裁②非 fail-open)。用量维度 = 成员数 (COUNT(member where organizationId)·实时算·不建 usage 表)。架构精度修宪 S2:裁决不再抛 HTTP(原
assertSeats402 已删)——本服务属 kit 的 领域/应用面,402 翻译归适配器角色消费点(QuotaGuard/ authseats-quota.hook), 由其消费checkSeats判别结果后自行抛(P1 result-union 范式)。限额经QuotaVO 摄入(存储/档位两源统一 fail-loud 防护,P2)。与UserStatusService/OrganizationStatusService同层,禁散点。