at.kotoba.stats

Single overwritten record: an incremental rollup of the session history, so a normal load doesn't have to cursor-walk every session ever recorded (#16). rkey is literally `self`.

Repository @kotoba.at did:plc:o5f3cgna5sku4p6iitld6mxs namespace authority
Details · record, key literal:self
Kindrecord
Record keyliteral:self
Authoritykotoba.at
Indexed
cid bafyreieayazly72ogsrpuval2fbv7bxkawsv7l6sddiiy2k7pmxkepfbu4

Checks

Valid
  • unlimited-string defs.main.record.properties.lastActiveDateNo maxLength, maxGraphemes or format limits this string.
  • unlimited-string defs.main.record.properties.lastDrilledPackRefNo maxLength, maxGraphemes or format limits this string.
  • unlimited-string defs.main.record.properties.watermarkNo maxLength, maxGraphemes or format limits this string.
JSONDownload
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Single overwritten record: an incremental rollup of the session history, so a normal load doesn't have to cursor-walk every session ever recorded (#16). rkey is literally `self`.",
      "key": "literal:self",
      "record": {
        "properties": {
          "currentStreak": {
            "minimum": 0,
            "type": "integer"
          },
          "lastActiveDate": {
            "description": "YYYY-MM-DD of the most recent session folded in; combined with currentStreak to decide at display time whether the streak is still current.",
            "type": "string"
          },
          "lastDrilledAt": {
            "description": "endedAt of the session lastDrilledPackRef came from, so folding a batch of sessions can tell which one was actually most recent.",
            "format": "datetime",
            "type": "string"
          },
          "lastDrilledPackRef": {
            "description": "at:// uri of the pack from the most recently *drilled* session that carried a packRef, so the home screen can default to it instead of the newest upload (#51).",
            "type": "string"
          },
          "totalCards": {
            "minimum": 0,
            "type": "integer"
          },
          "totalCorrect": {
            "minimum": 0,
            "type": "integer"
          },
          "totalSessions": {
            "minimum": 0,
            "type": "integer"
          },
          "updatedAt": {
            "format": "datetime",
            "type": "string"
          },
          "watermark": {
            "description": "rkey of the newest at.kotoba.session record folded into this summary so far; empty string if none yet. Session rkeys are TID (time-ordered), so a single watermark rkey is enough to resume folding only newer sessions.",
            "type": "string"
          }
        },
        "required": [
          "updatedAt",
          "watermark",
          "totalSessions",
          "totalCards",
          "totalCorrect",
          "currentStreak",
          "lastActiveDate"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "at.kotoba.stats",
  "lexicon": 1
}