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.
ai_synth/firebase-blueprint.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."
}
}
}