{
"id": "org.devcon.event.testcache",
"defs": {
"main": {
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"start_utc",
"end_utc",
"title",
"description",
"organizer",
"main_url",
"location",
"event_type",
"expertise"
],
"properties": {
"title": {
"type": "string",
"description": "Title of the event"
},
"end_utc": {
"type": "string",
"format": "datetime",
"description": "End time of the entire event (use the 'timeslots' field for granular scheduling)"
},
"socials": {
"type": "array",
"items": {
"ref": "lex:org.devcon.event.testcache#social_platform",
"type": "ref"
},
"description": "Array of social media platforms with platform name and URL."
},
"capacity": {
"type": "integer",
"description": "How many people can attend the event"
},
"location": {
"ref": "lex:org.devcon.event.testcache#location",
"type": "ref"
},
"main_url": {
"type": "string",
"description": "Main web property of the event (e.g. website or twitter profile)"
},
"sold_out": {
"type": "boolean",
"description": "Whether the event is sold out"
},
"image_url": {
"type": "string",
"description": "Url referencing an image for this event. Image should be .png, squared, and we suggest at least 1024x1024px."
},
"organizer": {
"ref": "lex:org.devcon.event.testcache#organizer",
"type": "ref"
},
"start_utc": {
"type": "string",
"format": "datetime",
"description": "Start time of the entire event (use the 'timeslots' field for granular scheduling)"
},
"timeslots": {
"type": "array",
"items": {
"ref": "lex:org.devcon.event.testcache#timeslot",
"type": "ref"
},
"description": "Optional event timeslots - this may be useful for events that span multiple days, need to specify timeslots for each day, or otherwise need more granular scheduling."
},
"categories": {
"type": "array",
"items": {
"enum": [
"real world ethereum",
"defi",
"cypherpunk & privacy",
"security",
"ai",
"protocol",
"devex",
"usability",
"applied cryptography",
"coordination",
"scalability",
"other"
],
"type": "string"
},
"description": "Categories of the event (e.g. defi, privacy, security, etc.)"
},
"event_type": {
"enum": [
"talks",
"discussion",
"presentation",
"hackathon",
"workshop",
"panel",
"mixed format",
"social",
"other"
],
"type": "string",
"description": "Type of event"
},
"description": {
"type": "string",
"description": "Description of the event"
},
"search_tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Searching tags for the event"
},
"expertise_level": {
"enum": [
"all welcome",
"beginner",
"intermediate",
"expert",
"other"
],
"type": "string",
"description": "Expertise level of the event"
},
"requires_ticket": {
"type": "boolean",
"description": "Whether the event requires tickets"
}
}
}
},
"location": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Name of the location"
},
"address": {
"type": "string",
"description": "Address of the location"
}
}
},
"timeslot": {
"type": "object",
"required": [
"start_utc",
"end_utc",
"title"
],
"properties": {
"title": {
"type": "string",
"description": "Title of the timeslot"
},
"end_utc": {
"type": "string",
"format": "datetime",
"description": "End of the timeslot"
},
"event_uri": {
"type": "string",
"description": "If the timeslot is a more intricate/detailed event that needs more than the basic title and description, this would refer to the atproto record key of that event. The referenced event should follow the same parent schema (org.devcon.event.v1)"
},
"start_utc": {
"type": "string",
"format": "datetime",
"description": "Start of the timeslot"
},
"description": {
"type": "string",
"description": "Description of the timeslot"
}
}
},
"organizer": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Name of the organizer"
},
"contact": {
"type": "string",
"description": "Contact of the organizer (email, twitter, etc.)"
}
}
},
"social_platform": {
"type": "object",
"required": [
"platform",
"url"
],
"properties": {
"url": {
"type": "string"
},
"platform": {
"type": "string"
}
}
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}