{
"id": "am.noz.at.spl.recurring",
"defs": {
"main": {
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"schemaVersion",
"templateId",
"description",
"currency",
"minorUnit",
"totalMinor",
"paidBy",
"defaultSplit",
"rrule",
"timezone",
"startsAt",
"nextAt",
"active",
"createdAt"
],
"properties": {
"rrule": {
"type": "string",
"maxLength": 512,
"minLength": 1,
"description": "RFC 5545 recurrence rule without embedded secrets or user prose."
},
"active": {
"type": "boolean"
},
"endsAt": {
"type": "string",
"format": "datetime"
},
"nextAt": {
"type": "string",
"format": "datetime"
},
"paidBy": {
"type": "array",
"items": {
"ref": "lex:am.noz.at.spl.recurring#moneyAllocation",
"type": "ref"
},
"maxLength": 250,
"minLength": 1
},
"category": {
"type": "string",
"maxLength": 64
},
"currency": {
"type": "string",
"maxLength": 3,
"minLength": 3
},
"startsAt": {
"type": "string",
"format": "datetime"
},
"timezone": {
"type": "string",
"maxLength": 64,
"minLength": 1
},
"createdAt": {
"type": "string",
"format": "datetime"
},
"minorUnit": {
"type": "integer",
"maximum": 4,
"minimum": 0
},
"templateId": {
"type": "string",
"maxLength": 64,
"minLength": 1
},
"totalMinor": {
"type": "integer",
"minimum": 1
},
"description": {
"type": "string",
"maxLength": 1000,
"minLength": 1,
"maxGraphemes": 200
},
"defaultSplit": {
"type": "string",
"format": "at-uri"
},
"schemaVersion": {
"type": "integer",
"const": 1
}
}
},
"description": "A recurring expense template. Occurrences are materialized as ordinary immutable expenses."
},
"moneyAllocation": {
"type": "object",
"required": [
"did",
"amountMinor"
],
"properties": {
"did": {
"type": "string",
"format": "did"
},
"amountMinor": {
"type": "integer",
"minimum": 0
}
}
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}