chore: freeze guide and explain update

This commit is contained in:
lyf
2026-06-24 18:00:25 +08:00
parent feb7310a46
commit 67c6609ae6
104 changed files with 3203572 additions and 40713 deletions

View File

@@ -12,8 +12,13 @@ import {
museumContentRepository,
type MuseumContentRepository
} from '@/repositories/MuseumContentRepository'
import {
staticMuseumContentProvider,
type ExplainContentProvider
} from '@/data/providers/staticMuseumContentProvider'
export interface ExplainRepository {
listExplainExhibits(): Promise<MuseumExhibit[]>
listExhibits(): Promise<MuseumExhibit[]>
getExhibitById(id: string): Promise<MuseumExhibit | null>
listHalls(): Promise<MuseumHall[]>
@@ -28,9 +33,14 @@ const trackTitleFor = (exhibit: MuseumExhibit) => `${exhibit.name}讲解`
export class DefaultExplainRepository implements ExplainRepository {
constructor(
private readonly content: MuseumContentRepository = museumContentRepository,
private readonly media: MediaRepository = mediaRepository
private readonly media: MediaRepository = mediaRepository,
private readonly explainContent: ExplainContentProvider = staticMuseumContentProvider
) {}
listExplainExhibits() {
return this.explainContent.listExplainExhibits()
}
listExhibits() {
return this.content.listExhibits()
}
@@ -48,6 +58,9 @@ export class DefaultExplainRepository implements ExplainRepository {
}
async listTracks() {
const tracks = await this.explainContent.listTracks()
if (tracks.length) return tracks
const exhibits = await this.content.listExhibits()
return Promise.all(exhibits.map(async (exhibit): Promise<ExplainTrack> => {
@@ -75,8 +88,8 @@ export class DefaultExplainRepository implements ExplainRepository {
async searchExplain(keyword = '') {
const normalizedKeyword = keyword.trim().toLowerCase()
const [exhibits, halls] = await Promise.all([
this.content.listExhibits(),
this.content.listHalls()
this.explainContent.listExplainExhibits(),
this.explainContent.listHalls()
])
const exhibitItems = exhibits