# com.pimstash.stuff.thing

> A Thing in a Stuff Trove. A shared field (name, category, make, model, measure, lifespanMonths, usageUnit, ratedUsage, photo) is absent, never null, to inherit the Kind's.

- Kind: record
- Record key: any
- Authority: stuff.pimstash.com
- Lexicon: 1
- Published by [lexicons.pimstash.com](https://lexicon.garden/identity/did:plc:kl7rkydjioe5qsucfce3uubx), the NSID's authority

## Links

- [Documentation](https://lexicon.garden/lexicon/did:plc:kl7rkydjioe5qsucfce3uubx/com.pimstash.stuff.thing)
- [Schema JSON](https://lexicon.garden/lexicon/did:plc:kl7rkydjioe5qsucfce3uubx/com.pimstash.stuff.thing/schema.json)
- [Analytics](https://lexicon.garden/lexicon/did:plc:kl7rkydjioe5qsucfce3uubx/com.pimstash.stuff.thing/analytics)

## Record (`com.pimstash.stuff.thing`)

Type: record · key any

### Properties

- `amount` (string, required): How much of the Thing there is, read by measure, as a decimal string ("2.375") so it round-trips exactly.
  - Constraints: maxLength: 64
- `category` (string)
  - Constraints: maxLength: 1000, maxGraphemes: 100
- `conditionPct` (integer): Condition, 0–100, set by an Inspection.
  - Constraints: minimum: 0, maximum: 100
- `createdAt` (string · datetime, required)
- `currency` (string): ISO 4217 code.
  - Constraints: minLength: 3, maxLength: 3
- `expiresOn` (string · datetime): The calendar date the Thing expires, entered directly; wins over one derived from lifespanMonths, as a datetime at UTC midnight read in UTC.
- `inServiceOn` (string · datetime): The calendar date the Thing went into service, as a datetime at UTC midnight read in UTC.
- `kind` (string · record-key): The record key of the com.pimstash.stuff.kind, in this same Space, this Thing is one of.
- `lentDueOn` (string · datetime): The calendar date the Loan is due back, as a datetime at UTC midnight read in UTC.
- `lentOn` (string · datetime): The calendar date the Loan began, as a datetime at UTC midnight read in UTC.
- `lentTo` (string): Who has it on Loan. Set together with lentOn.
  - Constraints: maxLength: 1000, maxGraphemes: 100
- `lifespanMonths` (integer): Months of service before the Thing is due for replacement.
  - Constraints: minimum: 1
- `links` (array)
  - Constraints: maxLength: 100
  - `items` (string · uri)
    - Constraints: maxLength: 3000
- `location` (string · record-key): The record key of the com.pimstash.stuff.location, in this same Space, this Thing is kept in.
- `make` (string)
  - Constraints: maxLength: 1000, maxGraphemes: 100
- `measure` (string): How the amount is read. Absent on a Thing inherits the Kind's; absent on a Kind reads as quantity.
  - Constraints: maxLength: 64, knownValues: quantity | count | level
- `model` (string)
  - Constraints: maxLength: 1000, maxGraphemes: 100
- `name` (string): Absent shows the Kind's name; a Thing without a Kind has one.
  - Constraints: maxLength: 1000, maxGraphemes: 100
- `notes` (string)
  - Constraints: maxLength: 10000, maxGraphemes: 1000
- `photo` (blob)
  - Constraints: maxSize: 1000000, accept: image/jpeg, image/webp, image/avif
- `priceMinor` (integer): The total paid for the whole Thing, in the currency's minor unit (cents, pence, whole yen).
  - Constraints: minimum: 0
- `purchasedOn` (string · datetime): The calendar date of purchase, as a datetime at UTC midnight read in UTC.
- `ratedUsage` (string): Usage the Thing is rated for, in usageUnit, as a decimal string ("2.375") so it round-trips exactly.
  - Constraints: maxLength: 64
- `retiredAt` (string · datetime): When the Thing left service. Set together with retiredReason.
- `retiredReason` (string)
  - Constraints: maxLength: 64, knownValues: sold | donated | discarded | lost | used_up | other
- `serial` (string)
  - Constraints: maxLength: 1000, maxGraphemes: 100
- `tags` (array)
  - Constraints: maxLength: 100
  - `items` (string)
    - Constraints: maxLength: 1000, maxGraphemes: 100
- `updatedAt` (string · datetime)
- `usage` (string): Usage so far, in usageUnit, as a decimal string ("2.375") so it round-trips exactly.
  - Constraints: maxLength: 64
- `usageUnit` (string)
  - Constraints: maxLength: 1000, maxGraphemes: 100
- `vendor` (string)
  - Constraints: maxLength: 1000, maxGraphemes: 100
- `warrantyUntil` (string · datetime): The calendar date the warranty runs to, as a datetime at UTC midnight read in UTC.

## Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "A Thing in a Stuff Trove. A shared field (name, category, make, model, measure, lifespanMonths, usageUnit, ratedUsage, photo) is absent, never null, to inherit the Kind's.",
      "key": "any",
      "record": {
        "properties": {
          "amount": {
            "description": "How much of the Thing there is, read by measure, as a decimal string (\"2.375\") so it round-trips exactly.",
            "maxLength": 64,
            "type": "string"
          },
          "category": {
            "maxGraphemes": 100,
            "maxLength": 1000,
            "type": "string"
          },
          "conditionPct": {
            "description": "Condition, 0–100, set by an Inspection.",
            "maximum": 100,
            "minimum": 0,
            "type": "integer"
          },
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "currency": {
            "description": "ISO 4217 code.",
            "maxLength": 3,
            "minLength": 3,
            "type": "string"
          },
          "expiresOn": {
            "description": "The calendar date the Thing expires, entered directly; wins over one derived from lifespanMonths, as a datetime at UTC midnight read in UTC.",
            "format": "datetime",
            "type": "string"
          },
          "inServiceOn": {
            "description": "The calendar date the Thing went into service, as a datetime at UTC midnight read in UTC.",
            "format": "datetime",
            "type": "string"
          },
          "kind": {
            "description": "The record key of the com.pimstash.stuff.kind, in this same Space, this Thing is one of.",
            "format": "record-key",
            "type": "string"
          },
          "lentDueOn": {
            "description": "The calendar date the Loan is due back, as a datetime at UTC midnight read in UTC.",
            "format": "datetime",
            "type": "string"
          },
          "lentOn": {
            "description": "The calendar date the Loan began, as a datetime at UTC midnight read in UTC.",
            "format": "datetime",
            "type": "string"
          },
          "lentTo": {
            "description": "Who has it on Loan. Set together with lentOn.",
            "maxGraphemes": 100,
            "maxLength": 1000,
            "type": "string"
          },
          "lifespanMonths": {
            "description": "Months of service before the Thing is due for replacement.",
            "minimum": 1,
            "type": "integer"
          },
          "links": {
            "items": {
              "format": "uri",
              "maxLength": 3000,
              "type": "string"
            },
            "maxLength": 100,
            "type": "array"
          },
          "location": {
            "description": "The record key of the com.pimstash.stuff.location, in this same Space, this Thing is kept in.",
            "format": "record-key",
            "type": "string"
          },
          "make": {
            "maxGraphemes": 100,
            "maxLength": 1000,
            "type": "string"
          },
          "measure": {
            "description": "How the amount is read. Absent on a Thing inherits the Kind's; absent on a Kind reads as quantity.",
            "knownValues": [
              "quantity",
              "count",
              "level"
            ],
            "maxLength": 64,
            "type": "string"
          },
          "model": {
            "maxGraphemes": 100,
            "maxLength": 1000,
            "type": "string"
          },
          "name": {
            "description": "Absent shows the Kind's name; a Thing without a Kind has one.",
            "maxGraphemes": 100,
            "maxLength": 1000,
            "type": "string"
          },
          "notes": {
            "maxGraphemes": 1000,
            "maxLength": 10000,
            "type": "string"
          },
          "photo": {
            "accept": [
              "image/jpeg",
              "image/webp",
              "image/avif"
            ],
            "maxSize": 1000000,
            "type": "blob"
          },
          "priceMinor": {
            "description": "The total paid for the whole Thing, in the currency's minor unit (cents, pence, whole yen).",
            "minimum": 0,
            "type": "integer"
          },
          "purchasedOn": {
            "description": "The calendar date of purchase, as a datetime at UTC midnight read in UTC.",
            "format": "datetime",
            "type": "string"
          },
          "ratedUsage": {
            "description": "Usage the Thing is rated for, in usageUnit, as a decimal string (\"2.375\") so it round-trips exactly.",
            "maxLength": 64,
            "type": "string"
          },
          "retiredAt": {
            "description": "When the Thing left service. Set together with retiredReason.",
            "format": "datetime",
            "type": "string"
          },
          "retiredReason": {
            "knownValues": [
              "sold",
              "donated",
              "discarded",
              "lost",
              "used_up",
              "other"
            ],
            "maxLength": 64,
            "type": "string"
          },
          "serial": {
            "maxGraphemes": 100,
            "maxLength": 1000,
            "type": "string"
          },
          "tags": {
            "items": {
              "maxGraphemes": 100,
              "maxLength": 1000,
              "type": "string"
            },
            "maxLength": 100,
            "type": "array"
          },
          "updatedAt": {
            "format": "datetime",
            "type": "string"
          },
          "usage": {
            "description": "Usage so far, in usageUnit, as a decimal string (\"2.375\") so it round-trips exactly.",
            "maxLength": 64,
            "type": "string"
          },
          "usageUnit": {
            "maxGraphemes": 100,
            "maxLength": 1000,
            "type": "string"
          },
          "vendor": {
            "maxGraphemes": 100,
            "maxLength": 1000,
            "type": "string"
          },
          "warrantyUntil": {
            "description": "The calendar date the warranty runs to, as a datetime at UTC midnight read in UTC.",
            "format": "datetime",
            "type": "string"
          }
        },
        "required": [
          "amount",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "com.pimstash.stuff.thing",
  "lexicon": 1
}
```
