Skip to content

Commit

Permalink
Add person, calendar, event schemas (#28)
Browse files Browse the repository at this point in the history
  • Loading branch information
chime3 authored Sep 3, 2024
2 parents 511dfef + c514943 commit 9747cfe
Show file tree
Hide file tree
Showing 2 changed files with 241 additions and 0 deletions.
78 changes: 78 additions & 0 deletions social/calendar/v0.1.0/schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://common.schemas.example.com/social/calendar/v0.1.0/schema.json",
"title": "Calendar",
"titlePlural": "Calendars",
"description": "Calendar information",
"type": "object",
"appearance": {
"style": {
"color": "#42A5F5",
"icon": "./calendar-icon.svg"
}
},
"database": {
"name": "calendar_data",
"indexes": {
"name": [
"name"
],
"insertedAt": [
"insertedAt"
],
"source": [
"sourceApplication",
"sourceId"
]
}
},
"layouts": {
"create": [
"calendarId",
"name",
"timezone",
"location"
],
"view": [
"calendarId",
"name",
"description",
"location",
"insertedAt"
]
},
"allOf": [
{
"$ref": "https://core.schemas.verida.io/base/v0.1.0/schema.json"
},
{
"properties": {
"calendarId": {
"description": "Reference ID of the calendar object",
"type": "string"
},
"description": {
"title": "Description",
"description": "Description of the calendar",
"type": "string"
},
"timeZone": {
"type": "string",
"description": "UTC offset format",
"pattern": "^([+-](?:2[0-3]|[01][0-9]):[0-5][0-9])$",
"example": "+02:30"
},
"location": {
"title": "Location",
"description": "Geographic location of the calendar as free-form text.",
"type": "string"
}
},
"required": [
"calendarId",
"name",
"timezone"
]
}
]
}
163 changes: 163 additions & 0 deletions social/event/v0.1.0/schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://common.schemas.verida.io/social/event/v0.1.0/schema.json",
"title": "Event",
"description": "Schema for a calendar event",
"type": "object",
"appearance": {
"style": {
"color": "#4285F4",
"icon": "./icon.svg"
}
},
"database": {
"name": "social_event",
"indexes": {
"name": ["name"],
"startTime": ["start.date"],
"endTime": ["end.date"],
"source": ["sourceApplication", "sourceId"]
}
},
"layouts": {
"create": ["name", "start.date", "end.date", "location"],
"view": ["name", "description", "start.date", "end.date", "location", "organizer", "attendees", "status"]
},
"allOf": [
{
"$ref": "https://core.schemas.verida.io/base/v0.1.0/schema.json"
},
{
"properties": {
"status": {
"title": "Status",
"description": "Status of the event",
"type": "string",
"enum": ["confirmed", "tentative", "cancelled"]
},
"description": {
"title": "Description",
"description": "Detailed description of the event",
"type": "string"
},
"location": {
"title": "Location",
"description": "Location of the event",
"type": "string"
},
"creator": {
"title": "Creator",
"description": "Details of the event creator",
"$ref": "#/$defs/person"
},
"organizer": {
"title": "Organizer",
"description": "Details of the event organizer",
"$ref": "#/$defs/person"
},
"start": {
"title": "Start",
"description": "Start time of the event",
"type": "object",
"properties": {
"dateTime": {
"type": "string",
"format": "date-time"
},
"date": {
"type": "string",
"format": "date"
},
"timeZone": {
"type": "string",
"description": "UTC offset format",
"pattern": "^([+-](?:2[0-3]|[01][0-9]):[0-5][0-9])$",
"example": "+02:30"
}
}
},
"end": {
"title": "End",
"description": "End time of the event",
"type": "object",
"properties": {
"dateTime": {
"type": "string",
"format": "date-time"
},
"date": {
"type": "string",
"format": "date"
},
"timeZone": {
"type": "string",
"description": "UTC offset format",
"pattern": "^([+-](?:2[0-3]|[01][0-9]):[0-5][0-9])$",
"example": "+02:30"
}
}
},
"attendees": {
"title": "Attendees",
"description": "List of attendees for the event",
"type": "array",
"items": {
"$ref": "#/$defs/person"
}
},
"conferenceData": {
"title": "Conference Data",
"description": "Details about the conference associated with the event",
"type": "object"
},
"attachments": {
"title": "Attachments",
"description": "Attachments for the event",
"type": "array",
"items": {
"type": "object",
"properties": {
"fileUrl": {
"type": "string",
"format": "uri"
},
"title": {
"type": "string"
},
"mimeType": {
"type": "string"
},
"iconLink": {
"type": "string",
"format": "uri"
},
"fileId": {
"type": "string"
}
}
}
}
},
"required": ["name", "start.date", "end.date"]
}
],
"$defs": {
"person": {
"type": "object",
"title": "Person",
"description": "Schema representing a person",
"properties": {
"email": {
"type": "string",
"format": "email",
"description": "Email address of the person"
},
"displayName": {
"type": "string",
"description": "Display name of the person"
}
},
"required": ["email"]
}
}
}

0 comments on commit 9747cfe

Please sign in to comment.