Build AWSectionStore class, a storage abstraction layer to support persistence and retrieval of:
- AWSection obejcts (section_qid, topic_qid, locale, etc...): pre-generated and stored AW article sections
- (maybe) AWArticleMetadata objects (created and updated timestamp, section ids and section order... ): this is globally reachable metadata without needing network-trips
Proposed interface:
- getSection( topic_qid, section_qid, locale, … ): AWSection
- getSectionsForTopic( topic_qid, locale, … ): AWSection
- setSection( AWSection, … ): bool
- deleteSection( topic_qid, section_qid, locale, … )
- getArticleMetadata( topic_qid, … ): AWArticleMetadata
- setArticleMetadata( AWArticleMetadata, … ): bool
- static createMissingSectionBlock( topic_qid, section_qid, locale, … ): AWSection
Goals:
- This abstraction is independent to the specific storage backend, to be decided on T422620: Agree with stakeholders on the substrate nature, location, and access method
- Storage backend should be configurable and transparently usable in non-production environments (DB and provided schema)