social.dracome.library.acquisition

dracome.social

Documentation

A record of how an actor came to own a specific book edition (purchased, gift, review copy, etc.). Multiple acquisitions per edition are allowed; like library.marker, library.review, and library.state, this record uses key: "tid", and its rkey is an opaque identity that never changes.

main record

A record of how an actor came to own a specific book edition (purchased, gift, review copy, etc.). Multiple acquisitions per edition are allowed; like library.marker, library.review, and library.state, this record uses key: "tid", and its rkey is an opaque identity that never changes.

Record Key tid Timestamp-based ID

Properties

createdAt string datetime Required

Canonical UTC instant serialized as ISO 8601 with a trailing Z suffix.

currencyCode string Optional

ISO 4217 currency code (e.g. "USD", "EUR", "GBP").

maxLength: 3 bytes
invoiceAvailable boolean Optional

Yes/No/unset - field absence means "unset". Must be true when invoiceNumber is set.

invoiceNumber string Optional

Invoice or receipt number, for tax/accounting reference. Implies invoiceAvailable: true.

maxLength: 512 bytesmaxGraphemes: 128 graphemes
notes string Optional

User-visible free-text notes.

maxLength: 8000 bytesmaxGraphemes: 2000 graphemes
priceMinorUnits integer Optional

Price in the currency's minor units (e.g. cents for EUR/USD), not a float. Zero is valid and meaningful (distinguishes a recorded free copy from no price recorded, which is this field absent).

minimum: 0
receivedDate string datetime Optional

Canonical UTC instant for the calendar day the book was received, serialized as ISO 8601 with a trailing Z suffix. Writers store midnight UTC of that day; the time-of-day component is insignificant. Same convention as library.defs#progressLogEntry.date.

receivedFrom string Optional

Free-text source/supplier, e.g. "Piper Verlag", "Amazon", "Sarah".

maxLength: 1024 bytesmaxGraphemes: 256 graphemes
supplier string Optional

Supplier/vendor name, distinct from receivedFrom for detailed accounting use cases.

maxLength: 1024 bytesmaxGraphemes: 256 graphemes
updatedAt string datetime Optional

Canonical UTC instant serialized as ISO 8601 with a trailing Z suffix.

View raw schema
{
  "description": "A record of how an actor came to own a specific book edition (purchased, gift, review copy, etc.). Multiple acquisitions per edition are allowed; like library.marker, library.review, and library.state, this record uses key: \"tid\", and its rkey is an opaque identity that never changes.",
  "key": "tid",
  "record": {
    "properties": {
      "acquisitionType": {
        "description": "How the actor came to own this edition.",
        "ref": "social.dracome.library.defs#acquisitionType",
        "type": "ref"
      },
      "catalogSnapshot": {
        "description": "Point-in-time work/edition metadata capture, refreshed from current catalog data at write time.",
        "ref": "social.dracome.work.defs#catalogSnapshot",
        "type": "ref"
      },
      "catalogTarget": {
        "description": "The work, and edition, this acquisition is about.",
        "ref": "social.dracome.work.defs#catalogTarget",
        "type": "ref"
      },
      "createdAt": {
        "description": "Canonical UTC instant serialized as ISO 8601 with a trailing Z suffix.",
        "format": "datetime",
        "type": "string"
      },
      "currencyCode": {
        "description": "ISO 4217 currency code (e.g. \"USD\", \"EUR\", \"GBP\").",
        "maxLength": 3,
        "type": "string"
      },
      "invoiceAvailable": {
        "description": "Yes/No/unset - field absence means \"unset\". Must be true when invoiceNumber is set.",
        "type": "boolean"
      },
      "invoiceNumber": {
        "description": "Invoice or receipt number, for tax/accounting reference. Implies invoiceAvailable: true.",
        "maxGraphemes": 128,
        "maxLength": 512,
        "type": "string"
      },
      "notes": {
        "description": "User-visible free-text notes.",
        "maxGraphemes": 2000,
        "maxLength": 8000,
        "type": "string"
      },
      "priceMinorUnits": {
        "description": "Price in the currency's minor units (e.g. cents for EUR/USD), not a float. Zero is valid and meaningful (distinguishes a recorded free copy from no price recorded, which is this field absent).",
        "minimum": 0,
        "type": "integer"
      },
      "receivedDate": {
        "description": "Canonical UTC instant for the calendar day the book was received, serialized as ISO 8601 with a trailing Z suffix. Writers store midnight UTC of that day; the time-of-day component is insignificant. Same convention as library.defs#progressLogEntry.date.",
        "format": "datetime",
        "type": "string"
      },
      "receivedFrom": {
        "description": "Free-text source/supplier, e.g. \"Piper Verlag\", \"Amazon\", \"Sarah\".",
        "maxGraphemes": 256,
        "maxLength": 1024,
        "type": "string"
      },
      "supplier": {
        "description": "Supplier/vendor name, distinct from receivedFrom for detailed accounting use cases.",
        "maxGraphemes": 256,
        "maxLength": 1024,
        "type": "string"
      },
      "updatedAt": {
        "description": "Canonical UTC instant serialized as ISO 8601 with a trailing Z suffix.",
        "format": "datetime",
        "type": "string"
      }
    },
    "required": [
      "catalogTarget",
      "catalogSnapshot",
      "acquisitionType",
      "createdAt"
    ],
    "type": "object"
  },
  "type": "record"
}

Lexicon Garden

@