Expand character model with additional attributes and advanced customization options
- Added fields such as `nickname`, `age`, `gender`, `species`, `nationality`, `status`, and others to enhance character customization. - Modified localization files to include new field labels and placeholders. - Updated `CharacterComponent` and `CharacterDetail` components with UI elements for the newly added attributes. - Introduced "Advanced Mode" toggle to manage visibility of extended customization options. - Refactored database models and repository methods (`addNewCharacter`, `updateCharacter`, and `fetchCharacters`) to handle the extended schema. - Improved data encryption and decryption workflows for secure storage of added attributes. - Enhanced user experience by reorganizing character customization layouts.
This commit is contained in:
@@ -106,15 +106,28 @@ export default class Download {
|
||||
if (!chapterInfosInserted) return false;
|
||||
|
||||
const charactersInserted: boolean = data.characters.every((character: BookCharactersTable): boolean => {
|
||||
const encryptedCharacterFirstName: string = System.encryptDataWithUserKey(character.first_name, userEncryptionKey);
|
||||
const encryptedCharacterLastName: string | null = character.last_name ? System.encryptDataWithUserKey(character.last_name, userEncryptionKey) : null;
|
||||
const encryptedCharacterCategory: string = System.encryptDataWithUserKey(character.category, userEncryptionKey);
|
||||
const encryptedCharacterTitle: string | null = character.title ? System.encryptDataWithUserKey(character.title, userEncryptionKey) : null;
|
||||
const encryptedCharacterImage: string | null = character.image ? System.encryptDataWithUserKey(character.image, userEncryptionKey) : null;
|
||||
const encryptedCharacterRole: string | null = character.role ? System.encryptDataWithUserKey(character.role, userEncryptionKey) : null;
|
||||
const encryptedCharacterBiography: string | null = character.biography ? System.encryptDataWithUserKey(character.biography, userEncryptionKey) : null;
|
||||
const encryptedCharacterHistory: string | null = character.history ? System.encryptDataWithUserKey(character.history, userEncryptionKey) : null;
|
||||
return CharacterRepo.insertSyncCharacter(character.character_id, character.book_id, userId, encryptedCharacterFirstName, encryptedCharacterLastName, encryptedCharacterCategory, encryptedCharacterTitle, encryptedCharacterImage, encryptedCharacterRole, encryptedCharacterBiography, encryptedCharacterHistory, character.last_update, lang);
|
||||
const characterData = {
|
||||
firstName: System.encryptDataWithUserKey(character.first_name, userEncryptionKey),
|
||||
lastName: character.last_name ? System.encryptDataWithUserKey(character.last_name, userEncryptionKey) : null,
|
||||
nickname: character.nickname ? System.encryptDataWithUserKey(character.nickname, userEncryptionKey) : null,
|
||||
age: character.age ? System.encryptDataWithUserKey(character.age, userEncryptionKey) : null,
|
||||
gender: character.gender ? System.encryptDataWithUserKey(character.gender, userEncryptionKey) : null,
|
||||
species: character.species ? System.encryptDataWithUserKey(character.species, userEncryptionKey) : null,
|
||||
nationality: character.nationality ? System.encryptDataWithUserKey(character.nationality, userEncryptionKey) : null,
|
||||
status: character.status ? System.encryptDataWithUserKey(character.status, userEncryptionKey) : null,
|
||||
category: System.encryptDataWithUserKey(character.category, userEncryptionKey),
|
||||
title: character.title ? System.encryptDataWithUserKey(character.title, userEncryptionKey) : null,
|
||||
image: character.image ? System.encryptDataWithUserKey(character.image, userEncryptionKey) : null,
|
||||
role: character.role ? System.encryptDataWithUserKey(character.role, userEncryptionKey) : null,
|
||||
biography: character.biography ? System.encryptDataWithUserKey(character.biography, userEncryptionKey) : null,
|
||||
history: character.history ? System.encryptDataWithUserKey(character.history, userEncryptionKey) : null,
|
||||
speechPattern: character.speech_pattern ? System.encryptDataWithUserKey(character.speech_pattern, userEncryptionKey) : null,
|
||||
catchphrase: character.catchphrase ? System.encryptDataWithUserKey(character.catchphrase, userEncryptionKey) : null,
|
||||
residence: character.residence ? System.encryptDataWithUserKey(character.residence, userEncryptionKey) : null,
|
||||
notes: character.notes ? System.encryptDataWithUserKey(character.notes, userEncryptionKey) : null,
|
||||
color: character.color ? System.encryptDataWithUserKey(character.color, userEncryptionKey) : null
|
||||
};
|
||||
return CharacterRepo.insertSyncCharacter(character.character_id, character.book_id, userId, characterData, character.last_update, lang);
|
||||
});
|
||||
if (!charactersInserted) return false;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user