Files
core2026/tools/frontend-legacy-parity/fixtures/canonical.ts
T

318 lines
11 KiB
TypeScript

export const canonicalFrontendFixture = {
gateway: {
user: {
id: 'visual-user-1',
username: 'visual-user',
displayName: '시각검증',
roles: [],
},
sessionToken: 'session_visual_fixture',
account: {
id: 'visual-user-1',
username: 'visual-user',
displayName: '시각검증',
roles: [],
oauthType: 'NONE',
createdAt: '2026-07-25T12:27:07.000Z',
iconUrl: null,
thirdPartyUse: true,
deleteAfter: null,
},
profile: {
profileName: 'che',
profile: 'che',
apiPort: 15003,
status: 'RUNNING',
korName: '체',
color: '#00bc8c',
scenario: '가상모드22',
},
},
game: {
session: {
profile: 'che',
gameToken: 'ga_frontend_legacy_fixture',
general: {
id: 1,
name: '유비',
troopId: 0,
},
},
lobby: {
year: 197,
month: 7,
userCnt: 17,
npcCnt: 31,
nationCnt: 5,
maxUserCnt: 50,
turnTerm: 60,
fictionMode: '가상',
otherTextInfo: '표준',
starttime: '0190-01-01T00:00:00.000Z',
myGeneral: null,
},
mapLayout: {
mapName: 'che',
cityList: [
{ id: 1, name: '낙양', level: 7, region: 1, x: 350, y: 245, path: [2] },
{ id: 2, name: '장안', level: 7, region: 1, x: 260, y: 240, path: [1] },
{ id: 3, name: '업', level: 6, region: 2, x: 390, y: 160, path: [1] },
],
regionMap: { 1: '사예', 2: '기주' },
levelMap: { 6: '주', 7: '수도' },
},
map: {
year: 197,
month: 7,
startYear: 190,
cityList: [
[1, 7, 0, 1, 1, 1],
[2, 7, 0, 2, 1, 1],
[3, 6, 0, 1, 2, 1],
],
nationList: [
[1, '한', '#d32f2f', 1],
[2, '진', '#1976d2', 2],
],
},
bestGeneral: {
isUnited: true,
sections: [
{
title: '명 성',
valueType: 'int',
entries: [
{
id: 1,
name: '유비',
ownerName: '시각검증',
nationName: '촉',
bgColor: '#006400',
fgColor: '#ffffff',
picture: 'default.jpg',
imageServer: 0,
value: 12000,
printValue: '12,000',
},
{
id: 2,
name: '조조',
ownerName: '검증계정',
nationName: '위',
bgColor: '#8b0000',
fgColor: '#ffffff',
picture: 'default.jpg',
imageServer: 0,
value: 11000,
printValue: '11,000',
},
],
},
{
title: '계 급',
valueType: 'int',
entries: [],
},
],
uniqueItems: [
{
title: '명 마',
slot: 'horse',
entries: [
{
itemKey: 'che_명마_15_적토마',
itemName: '적토마',
itemInfo: '최고의 명마',
owner: {
id: 1,
name: '유비',
nationName: '촉',
bgColor: '#006400',
fgColor: '#ffffff',
picture: 'default.jpg',
imageServer: 0,
},
},
{
itemKey: 'che_명마_15_적토마',
itemName: '적토마',
itemInfo: '최고의 명마',
owner: {
id: 0,
name: '경매중',
nationName: '-',
bgColor: '#00582c',
fgColor: '#ffffff',
picture: null,
imageServer: 0,
},
},
],
},
],
},
hallOptions: [
{
season: 1,
scenarios: [{ id: 22, name: '【가상모드22】 찐유저무쌍!', count: 1 }],
},
],
hall: {
sections: [
{
title: '명 성',
valueType: 'int',
entries: [
{
generalId: 1,
name: '유비',
ownerName: '시각검증',
nationName: '촉',
bgColor: '#006400',
fgColor: '#ffffff',
picture: 'default.jpg',
imageServer: 0,
value: 12000,
printValue: '12,000',
serverName: '체',
serverIdx: 1,
scenarioName: '가상모드22',
startTime: '2026-01-01',
unitedTime: '2026-02-01',
},
{
generalId: 2,
name: '조조',
ownerName: '검증계정',
nationName: '위',
bgColor: '#8b0000',
fgColor: '#ffffff',
picture: 'default.jpg',
imageServer: 0,
value: 11000,
printValue: '11,000',
serverName: '체',
serverIdx: 1,
scenarioName: '가상모드22',
startTime: '2026-01-01',
unitedTime: '2026-02-01',
},
],
},
{
title: '계 급',
valueType: 'int',
entries: [],
},
],
},
yearbookRange: {
firstYearMonth: 197 * 12 + 5,
lastYearMonth: 197 * 12 + 6,
currentYearMonth: 197 * 12 + 6,
},
yearbook: {
notModified: false,
hash: 'yearbook-visual-hash',
data: {
year: 197,
month: 7,
map: {
year: 197,
month: 7,
startYear: 190,
cityList: [
[1, 7, 0, 1, 1, 1],
[2, 7, 0, 2, 1, 1],
[3, 6, 0, 1, 2, 1],
],
nationList: [
[1, '한', '#d32f2f', 1],
[2, '진', '#1976d2', 2],
],
},
nations: [
{
id: 1,
name: '한',
color: '#d32f2f',
level: 5,
power: 1250,
generalCount: 12,
cities: ['낙양', '업'],
},
{
id: 2,
name: '진',
color: '#1976d2',
level: 4,
power: 980,
generalCount: 8,
cities: ['장안'],
},
],
globalHistory: ['<C>●</> 한이 낙양을 지키고 있습니다.'],
globalAction: ['<L>●</> 유비가 내정을 수행했습니다.'],
},
},
surveyList: {
polls: [
{
id: 2,
title: '선호하는 병종',
startAt: '2026-07-26T00:00:00.000Z',
endAt: null,
closedAt: null,
revealMode: 'after_vote',
optionsCount: 3,
multipleOptions: 1,
},
{
id: 1,
title: '지난 설문',
startAt: '2026-07-20T00:00:00.000Z',
endAt: '2026-07-21T00:00:00.000Z',
closedAt: '2026-07-21T00:00:00.000Z',
revealMode: 'after_vote',
optionsCount: 2,
multipleOptions: 1,
},
],
voteReward: 90,
},
surveyDetail: {
voteInfo: {
id: 2,
title: '선호하는 병종',
body: '',
options: ['보병', '기병', '궁병'],
multipleOptions: 1,
revealMode: 'after_vote',
openerGeneralId: 9,
openerName: '설문관리자',
startAt: '2026-07-26T00:00:00.000Z',
endAt: null,
closedAt: null,
},
votes: [
{ selection: [0], count: 2 },
{ selection: [1], count: 1 },
],
comments: [
{
id: 1,
voteId: 2,
generalId: 3,
nationId: 1,
generalName: '관우',
nationName: '촉',
text: '기병이 좋습니다.',
createdAt: '2026-07-26T01:23:00.000Z',
},
],
myVote: null,
userCnt: 17,
},
},
} as const;