send wiki_raw when creating entities from import

This commit is contained in:
Justin Edmund 2025-12-14 21:50:40 -08:00
parent cfb62447a0
commit ed6a9fd2f4
4 changed files with 36 additions and 13 deletions

View file

@ -424,6 +424,7 @@ export interface CreateSummonPayload {
transcendence_date?: string | null
wiki_en?: string
wiki_ja?: string
wiki_raw?: string
gamewith?: string
kamigame?: string
nicknames_en?: string[]
@ -496,6 +497,7 @@ export interface CreateWeaponPayload {
transcendence_date?: string | null
wiki_en?: string
wiki_ja?: string
wiki_raw?: string
gamewith?: string
kamigame?: string
recruits?: string | null // Character ID reference

View file

@ -56,6 +56,9 @@
let dismissedByPage = $state<Record<string, Set<string>>>({})
let savedEntities = $state<Set<string>>(new Set())
// Store wiki raw data per entity for sending with create request
let wikiRawByPage = $state<Record<string, string>>({})
// Saving state
let isSaving = $state(false)
let saveError = $state<string | null>(null)
@ -182,6 +185,9 @@
const wikiResults = await fetchWikiPages(pages)
const wikiData = buildWikiDataMap(wikiResults)
// Store wiki raw data for sending with create request
wikiRawByPage = { ...wikiData }
// Update pages array with any redirects
const finalPages = wikiResults.map((r) => r.wikiPage)
@ -299,7 +305,7 @@
kamigame: formData.kamigame,
nicknames_en: formData.nicknamesEn,
nicknames_jp: formData.nicknamesJp,
wiki_raw: entity?.wikiRaw || null
wiki_raw: wikiRawByPage[selectedWikiPage] || undefined
}
const newCharacter = await entityAdapter.createCharacter(payload)

View file

@ -55,6 +55,9 @@
let dismissedByPage = $state<Record<string, Set<string>>>({})
let savedEntities = $state<Set<string>>(new Set())
// Store wiki raw data per entity for sending with create request
let wikiRawByPage = $state<Record<string, string>>({})
// Saving state
let isSaving = $state(false)
let saveError = $state<string | null>(null)
@ -175,6 +178,9 @@
const wikiResults = await fetchWikiPages(pages)
const wikiData = buildWikiDataMap(wikiResults)
// Store wiki raw data for sending with create request
wikiRawByPage = { ...wikiData }
// Update pages array with any redirects
const finalPages = wikiResults.map((r) => r.wikiPage)
@ -278,7 +284,8 @@
gamewith: formData.gamewith,
kamigame: formData.kamigame,
nicknames_en: formData.nicknamesEn,
nicknames_jp: formData.nicknamesJp
nicknames_jp: formData.nicknamesJp,
wiki_raw: wikiRawByPage[selectedWikiPage] || undefined
}
const newSummon = await entityAdapter.createSummon(payload)

View file

@ -17,6 +17,7 @@
import WeaponTaxonomySection from '$lib/features/database/weapons/sections/WeaponTaxonomySection.svelte'
import WeaponStatsSection from '$lib/features/database/weapons/sections/WeaponStatsSection.svelte'
import WeaponMetadataSection from '$lib/features/database/weapons/sections/WeaponMetadataSection.svelte'
import WeaponGachaSection from '$lib/features/database/weapons/sections/WeaponGachaSection.svelte'
import TabbedEntitySelector from '$lib/features/database/import/TabbedEntitySelector.svelte'
import type { EntityTab } from '$lib/features/database/import/TabbedEntitySelector.svelte'
import DetailsContainer from '$lib/components/ui/DetailsContainer.svelte'
@ -27,7 +28,6 @@
import Input from '$lib/components/ui/Input.svelte'
import Icon from '$lib/components/Icon.svelte'
import TagInput from '$lib/components/ui/TagInput.svelte'
import CharacterTypeahead from '$lib/components/ui/CharacterTypeahead.svelte'
import type { PageData } from './$types'
@ -56,6 +56,9 @@
let dismissedByPage = $state<Record<string, Set<string>>>({})
let savedEntities = $state<Set<string>>(new Set())
// Store wiki raw data per entity for sending with create request
let wikiRawByPage = $state<Record<string, string>>({})
// Saving state
let isSaving = $state(false)
let saveError = $state<string | null>(null)
@ -177,6 +180,9 @@
const wikiResults = await fetchWikiPages(pages)
const wikiData = buildWikiDataMap(wikiResults)
// Store wiki raw data for sending with create request
wikiRawByPage = { ...wikiData }
// Update pages array with any redirects
const finalPages = wikiResults.map((r) => r.wikiPage)
@ -283,7 +289,8 @@
kamigame: formData.kamigame,
nicknames_en: formData.nicknamesEn,
nicknames_jp: formData.nicknamesJp,
recruits: formData.recruits
recruits: formData.recruits,
wiki_raw: wikiRawByPage[selectedWikiPage] || undefined
}
const newWeapon = await entityAdapter.createWeapon(payload)
@ -487,6 +494,16 @@
onDismissSuggestion={handleDismissSuggestion}
/>
<WeaponGachaSection
weapon={emptyWeapon}
editMode={true}
bind:editData={formDataByPage[selectedWikiPage]}
{suggestions}
dismissedSuggestions={dismissed}
onAcceptSuggestion={handleAcceptSuggestion}
onDismissSuggestion={handleDismissSuggestion}
/>
<DetailsContainer title="Nicknames">
<DetailItem label="Nicknames (EN)">
<TagInput bind:value={formDataByPage[selectedWikiPage].nicknamesEn} placeholder="Add nickname..." contained />
@ -496,15 +513,6 @@
</DetailItem>
</DetailsContainer>
<DetailsContainer title="Recruits">
<DetailItem label="Recruits Character" sublabel="Character recruited by this weapon">
<CharacterTypeahead
bind:value={formDataByPage[selectedWikiPage].recruits}
placeholder="Search for character..."
/>
</DetailItem>
</DetailsContainer>
<DetailsContainer title="Dates">
<SuggestionDetailItem
label="Release Date"