You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
2.5 KiB
JSON
71 lines
2.5 KiB
JSON
{
|
|
"entities": {
|
|
"NewsItem": {
|
|
"title": "News Item",
|
|
"description": "A single news item with title, url, and summary.",
|
|
"type": "object",
|
|
"properties": {
|
|
"title": { "type": "string" },
|
|
"url": { "type": "string" },
|
|
"summary": { "type": "string" }
|
|
},
|
|
"required": ["title", "url", "summary"]
|
|
},
|
|
"Synthesis": {
|
|
"title": "Synthesis",
|
|
"description": "Weekly AI news synthesis.",
|
|
"type": "object",
|
|
"properties": {
|
|
"week": { "type": "string", "description": "ISO week string, e.g., 2026-W12" },
|
|
"createdAt": { "type": "timestamp" },
|
|
"authorUid": { "type": "string" },
|
|
"majorAnnouncements": { "type": "array", "items": { "$ref": "#/entities/NewsItem" } },
|
|
"financialSector": { "type": "array", "items": { "$ref": "#/entities/NewsItem" } },
|
|
"otherEnterprises": { "type": "array", "items": { "$ref": "#/entities/NewsItem" } },
|
|
"publicSector": { "type": "array", "items": { "$ref": "#/entities/NewsItem" } },
|
|
"generalPublic": { "type": "array", "items": { "$ref": "#/entities/NewsItem" } },
|
|
"sections": { "type": "array", "items": { "type": "object" } }
|
|
},
|
|
"required": ["week", "createdAt", "authorUid"]
|
|
},
|
|
"Settings": {
|
|
"title": "Settings",
|
|
"description": "User specific settings for synthesis generation.",
|
|
"type": "object",
|
|
"properties": {
|
|
"theme": { "type": "string" },
|
|
"maxAgeDays": { "type": "number" },
|
|
"categories": { "type": "array", "items": { "type": "string" } },
|
|
"maxItemsPerCategory": { "type": "number" }
|
|
},
|
|
"required": ["theme", "maxAgeDays", "categories", "maxItemsPerCategory"]
|
|
},
|
|
"Source": {
|
|
"title": "Source",
|
|
"description": "A custom news source.",
|
|
"type": "object",
|
|
"properties": {
|
|
"title": { "type": "string" },
|
|
"url": { "type": "string" },
|
|
"authorUid": { "type": "string" },
|
|
"createdAt": { "type": "timestamp" }
|
|
},
|
|
"required": ["title", "url", "authorUid", "createdAt"]
|
|
}
|
|
},
|
|
"firestore": {
|
|
"/syntheses/{synthesisId}": {
|
|
"schema": { "$ref": "#/entities/Synthesis" },
|
|
"description": "Stores weekly syntheses."
|
|
},
|
|
"/sources/{sourceId}": {
|
|
"schema": { "$ref": "#/entities/Source" },
|
|
"description": "Stores custom sources per user."
|
|
},
|
|
"/settings/{userId}": {
|
|
"schema": { "$ref": "#/entities/Settings" },
|
|
"description": "Stores user settings."
|
|
}
|
|
}
|
|
}
|