feat: расширение моковых данных — 6 сайтов, 30 устройств, 40 линий

Добавлены новые устройства (SDH, DWDM, RRL, VoIP, SORM, MGN, RAN BS,
видеонаблюдение), третий корневой сайт «Южный», перекрёстные линии
между сайтами, покрытие всех статусов и сред передачи.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Alina
2026-02-17 22:15:22 +03:00
parent ef816cdcf4
commit da7617f065

View File

@ -28,6 +28,15 @@ export const mockData: SchemaData = {
status: EntityStatus.Active, status: EntityStatus.Active,
parentSiteId: null, parentSiteId: null,
}, },
{
id: 'site-3',
name: 'Узел связи Южный',
address: 'пр. Победы, 42',
erpCode: 'ERP-004',
code1C: '1C-004',
status: EntityStatus.Active,
parentSiteId: null,
},
{ {
id: 'site-1-1', id: 'site-1-1',
name: 'Подузел Восточный', name: 'Подузел Восточный',
@ -37,10 +46,29 @@ export const mockData: SchemaData = {
status: EntityStatus.Planned, status: EntityStatus.Planned,
parentSiteId: 'site-1', parentSiteId: 'site-1',
}, },
{
id: 'site-1-2',
name: 'Подузел Западный',
address: 'ул. Ленина, 1, корп. 3',
erpCode: 'ERP-005',
code1C: '1C-005',
status: EntityStatus.Active,
parentSiteId: 'site-1',
},
{
id: 'site-2-1',
name: 'Подузел Промзона',
address: 'ул. Мира, 15а',
erpCode: 'ERP-006',
code1C: '1C-006',
status: EntityStatus.UnderConstruction,
parentSiteId: 'site-2',
},
], ],
devices: [ devices: [
// Site 1 devices // ===== Site 1: Центральный =====
// Layer 1 — кроссы
{ {
id: 'dev-cross-1', id: 'dev-cross-1',
name: 'Кросс оптический ОРШ-1', name: 'Кросс оптический ОРШ-1',
@ -67,6 +95,20 @@ export const mockData: SchemaData = {
status: EntityStatus.Reserved, status: EntityStatus.Reserved,
siteId: 'site-1', siteId: 'site-1',
}, },
{
id: 'dev-cross-4',
name: 'Кросс медный КРТ-1',
networkName: 'KRT-1',
ipAddress: '',
marking: 'КРТ-100',
id1: 'INV-020',
id2: 'SN-020',
group: DeviceGroup.Passive,
category: DeviceCategory.CrossCopper,
status: EntityStatus.Active,
siteId: 'site-1',
},
// Layer 2 — DWDM
{ {
id: 'dev-dwdm-1', id: 'dev-dwdm-1',
name: 'DWDM Huawei OSN 8800', name: 'DWDM Huawei OSN 8800',
@ -80,6 +122,34 @@ export const mockData: SchemaData = {
status: EntityStatus.Active, status: EntityStatus.Active,
siteId: 'site-1', siteId: 'site-1',
}, },
{
id: 'dev-dwdm-2',
name: 'DWDM ZTE ZXONE 9700',
networkName: 'DWDM-ZTE-01',
ipAddress: '10.0.1.11',
marking: '',
id1: 'INV-021',
id2: '',
group: DeviceGroup.Active,
category: DeviceCategory.DWDM,
status: EntityStatus.Planned,
siteId: 'site-1',
},
// Layer 3 — SDH
{
id: 'dev-sdh-1',
name: 'SDH Huawei OptiX OSN 3500',
networkName: 'SDH-HW-01',
ipAddress: '10.0.1.30',
marking: '',
id1: 'INV-022',
id2: '',
group: DeviceGroup.Active,
category: DeviceCategory.SDH,
status: EntityStatus.Decommissioned,
siteId: 'site-1',
},
// Layer 4 — IP
{ {
id: 'dev-router-1', id: 'dev-router-1',
name: 'Маршрутизатор Cisco ASR 9000', name: 'Маршрутизатор Cisco ASR 9000',
@ -93,6 +163,19 @@ export const mockData: SchemaData = {
status: EntityStatus.Active, status: EntityStatus.Active,
siteId: 'site-1', siteId: 'site-1',
}, },
{
id: 'dev-router-2',
name: 'Маршрутизатор Juniper MX204',
networkName: 'RTR-JUN-01',
ipAddress: '10.0.1.3',
marking: '',
id1: 'INV-023',
id2: '',
group: DeviceGroup.Active,
category: DeviceCategory.IP,
status: EntityStatus.Active,
siteId: 'site-1',
},
{ {
id: 'dev-switch-1', id: 'dev-switch-1',
name: 'Коммутатор Huawei S6730', name: 'Коммутатор Huawei S6730',
@ -106,6 +189,20 @@ export const mockData: SchemaData = {
status: EntityStatus.Active, status: EntityStatus.Active,
siteId: 'site-1', siteId: 'site-1',
}, },
{
id: 'dev-switch-2',
name: 'Коммутатор Cisco Catalyst 9300',
networkName: 'SW-CISCO-01',
ipAddress: '10.0.1.4',
marking: '',
id1: 'INV-024',
id2: '',
group: DeviceGroup.Active,
category: DeviceCategory.LanWlan,
status: EntityStatus.Active,
siteId: 'site-1',
},
// Layer 5 — серверы
{ {
id: 'dev-server-1', id: 'dev-server-1',
name: 'Сервер мониторинга', name: 'Сервер мониторинга',
@ -119,7 +216,48 @@ export const mockData: SchemaData = {
status: EntityStatus.Active, status: EntityStatus.Active,
siteId: 'site-1', siteId: 'site-1',
}, },
// Site 1-1 (child site) device {
id: 'dev-server-2',
name: 'Сервер биллинга',
networkName: 'SRV-BILL-01',
ipAddress: '10.0.1.101',
marking: '',
id1: 'INV-025',
id2: '',
group: DeviceGroup.Active,
category: DeviceCategory.Server,
status: EntityStatus.Active,
siteId: 'site-1',
},
{
id: 'dev-sorm-1',
name: 'СОРМ Маршрут',
networkName: 'SORM-01',
ipAddress: '10.0.1.200',
marking: '',
id1: 'INV-026',
id2: '',
group: DeviceGroup.Active,
category: DeviceCategory.SORM,
status: EntityStatus.Active,
siteId: 'site-1',
},
// Layer 6 — VoIP
{
id: 'dev-voip-1',
name: 'Шлюз VoIP Eltex TAU-72',
networkName: 'VOIP-ELT-01',
ipAddress: '10.0.1.50',
marking: '',
id1: 'INV-027',
id2: '',
group: DeviceGroup.Active,
category: DeviceCategory.VOIP,
status: EntityStatus.Active,
siteId: 'site-1',
},
// ===== Site 1-1: Подузел Восточный =====
{ {
id: 'dev-splice-1', id: 'dev-splice-1',
name: 'Муфта МТОК-96', name: 'Муфта МТОК-96',
@ -133,7 +271,49 @@ export const mockData: SchemaData = {
status: EntityStatus.Active, status: EntityStatus.Active,
siteId: 'site-1-1', siteId: 'site-1-1',
}, },
// Site 2 devices {
id: 'dev-splice-2',
name: 'Муфта МТОК-48',
networkName: '',
ipAddress: '',
marking: 'МТОК-48',
id1: 'INV-028',
id2: 'SN-028',
group: DeviceGroup.Passive,
category: DeviceCategory.Unknown,
status: EntityStatus.Planned,
siteId: 'site-1-1',
},
// ===== Site 1-2: Подузел Западный =====
{
id: 'dev-rrl-1',
name: 'РРС Ericsson MINI-LINK 6352',
networkName: 'RRL-ERC-01',
ipAddress: '10.0.1.60',
marking: '',
id1: 'INV-029',
id2: '',
group: DeviceGroup.Active,
category: DeviceCategory.RRL,
status: EntityStatus.Active,
siteId: 'site-1-2',
},
{
id: 'dev-switch-3',
name: 'Коммутатор Eltex MES3124F',
networkName: 'SW-ELT-01',
ipAddress: '10.0.1.61',
marking: '',
id1: 'INV-030',
id2: '',
group: DeviceGroup.Active,
category: DeviceCategory.LanWlan,
status: EntityStatus.Active,
siteId: 'site-1-2',
},
// ===== Site 2: Северный =====
{ {
id: 'dev-cross-3', id: 'dev-cross-3',
name: 'Кросс оптический ОРШ-3', name: 'Кросс оптический ОРШ-3',
@ -147,6 +327,19 @@ export const mockData: SchemaData = {
status: EntityStatus.Active, status: EntityStatus.Active,
siteId: 'site-2', siteId: 'site-2',
}, },
{
id: 'dev-cross-5',
name: 'Кросс оптический ОРШ-5',
networkName: 'ORS-5',
ipAddress: '',
marking: 'ОРШ-24',
id1: 'INV-031',
id2: 'SN-031',
group: DeviceGroup.Passive,
category: DeviceCategory.CrossOptical,
status: EntityStatus.Active,
siteId: 'site-2',
},
{ {
id: 'dev-olt-1', id: 'dev-olt-1',
name: 'OLT Huawei MA5800', name: 'OLT Huawei MA5800',
@ -173,143 +366,489 @@ export const mockData: SchemaData = {
status: EntityStatus.Faulty, status: EntityStatus.Faulty,
siteId: 'site-2', siteId: 'site-2',
}, },
{
id: 'dev-router-3',
name: 'Маршрутизатор Eltex ESR-1000',
networkName: 'RTR-ELT-01',
ipAddress: '10.0.2.1',
marking: '',
id1: 'INV-032',
id2: '',
group: DeviceGroup.Active,
category: DeviceCategory.IP,
status: EntityStatus.Active,
siteId: 'site-2',
},
{
id: 'dev-mgn-1',
name: 'МГН-шлюз Nateks VoiceFinder',
networkName: 'MGN-NAT-01',
ipAddress: '10.0.2.50',
marking: '',
id1: 'INV-033',
id2: '',
group: DeviceGroup.Active,
category: DeviceCategory.MGN,
status: EntityStatus.Active,
siteId: 'site-2',
},
// ===== Site 2-1: Подузел Промзона =====
{
id: 'dev-ran-bs-1',
name: 'БС Huawei BTS3900',
networkName: 'RAN-BS-01',
ipAddress: '10.0.2.70',
marking: '',
id1: 'INV-034',
id2: '',
group: DeviceGroup.Active,
category: DeviceCategory.RanBaseStation,
status: EntityStatus.UnderConstruction,
siteId: 'site-2-1',
},
// ===== Site 3: Южный =====
{
id: 'dev-cross-6',
name: 'Кросс оптический ОРШ-6',
networkName: 'ORS-6',
ipAddress: '',
marking: 'ОРШ-64',
id1: 'INV-035',
id2: 'SN-035',
group: DeviceGroup.Passive,
category: DeviceCategory.CrossOptical,
status: EntityStatus.Active,
siteId: 'site-3',
},
{
id: 'dev-dwdm-3',
name: 'DWDM Ciena 6500',
networkName: 'DWDM-CI-01',
ipAddress: '10.0.3.10',
marking: '',
id1: 'INV-036',
id2: '',
group: DeviceGroup.Active,
category: DeviceCategory.DWDM,
status: EntityStatus.Active,
siteId: 'site-3',
},
{
id: 'dev-router-4',
name: 'Маршрутизатор Nokia 7750 SR',
networkName: 'RTR-NOK-01',
ipAddress: '10.0.3.1',
marking: '',
id1: 'INV-037',
id2: '',
group: DeviceGroup.Active,
category: DeviceCategory.IP,
status: EntityStatus.Active,
siteId: 'site-3',
},
{
id: 'dev-switch-4',
name: 'Коммутатор Arista 7050X',
networkName: 'SW-ARI-01',
ipAddress: '10.0.3.2',
marking: '',
id1: 'INV-038',
id2: '',
group: DeviceGroup.Active,
category: DeviceCategory.LanWlan,
status: EntityStatus.Active,
siteId: 'site-3',
},
{
id: 'dev-server-3',
name: 'Сервер видеонаблюдения',
networkName: 'SRV-VIDEO-01',
ipAddress: '10.0.3.100',
marking: '',
id1: 'INV-039',
id2: '',
group: DeviceGroup.Active,
category: DeviceCategory.VideoSurveillance,
status: EntityStatus.Active,
siteId: 'site-3',
},
{
id: 'dev-splice-3',
name: 'Муфта МТОК-128',
networkName: '',
ipAddress: '',
marking: 'МТОК-128',
id1: 'INV-040',
id2: 'SN-040',
group: DeviceGroup.Passive,
category: DeviceCategory.Unknown,
status: EntityStatus.Active,
siteId: 'site-3',
},
], ],
cards: [ cards: [
{ // DWDM-1 cards
id: 'card-1', { id: 'card-1', slotName: '1', networkName: 'TN12ST2', status: EntityStatus.Active, visible: true, deviceId: 'dev-dwdm-1' },
slotName: '1', { id: 'card-2', slotName: '2', networkName: 'TN11LSX', status: EntityStatus.Active, visible: true, deviceId: 'dev-dwdm-1' },
networkName: 'TN12ST2', { id: 'card-3', slotName: '3', networkName: 'TN52TDX', status: EntityStatus.Planned, visible: true, deviceId: 'dev-dwdm-1' },
status: EntityStatus.Active, // Router-1 cards
visible: true, { id: 'card-4', slotName: '1', networkName: 'RSP-480', status: EntityStatus.Active, visible: true, deviceId: 'dev-router-1' },
deviceId: 'dev-dwdm-1', { id: 'card-5', slotName: '2', networkName: 'A9K-8T', status: EntityStatus.Active, visible: true, deviceId: 'dev-router-1' },
}, // Router-2 cards
{ { id: 'card-6', slotName: '0', networkName: 'MPC-3D', status: EntityStatus.Active, visible: true, deviceId: 'dev-router-2' },
id: 'card-2', // DWDM-2 cards
slotName: '2', { id: 'card-7', slotName: '1', networkName: 'M40V', status: EntityStatus.Planned, visible: true, deviceId: 'dev-dwdm-2' },
networkName: 'TN11LSX', // OLT cards
status: EntityStatus.Active, { id: 'card-8', slotName: '0', networkName: 'H901GPSF', status: EntityStatus.UnderConstruction, visible: true, deviceId: 'dev-olt-1' },
visible: true, // DWDM-3 cards
deviceId: 'dev-dwdm-1', { id: 'card-9', slotName: '1', networkName: 'WL3ne', status: EntityStatus.Active, visible: true, deviceId: 'dev-dwdm-3' },
}, { id: 'card-10', slotName: '2', networkName: 'MOTR', status: EntityStatus.Active, visible: true, deviceId: 'dev-dwdm-3' },
{ // Router-4 cards
id: 'card-3', { id: 'card-11', slotName: '1', networkName: 'IMM-12', status: EntityStatus.Active, visible: true, deviceId: 'dev-router-4' },
slotName: '1',
networkName: 'RSP-480',
status: EntityStatus.Active,
visible: true,
deviceId: 'dev-router-1',
},
], ],
ports: [ ports: [
// Cross 1 ports (L = left, S = right) // ===== Cross 1 (8L + 8S) =====
{ id: 'p-c1-l1', name: 'L1', slotName: 'L', side: 'left', sortOrder: 1, labelColor: '#1890ff', deviceId: 'dev-cross-1', cardId: null }, { id: 'p-c1-l1', name: 'L1', slotName: 'L', side: 'left', sortOrder: 1, labelColor: '#1890ff', deviceId: 'dev-cross-1', cardId: null },
{ id: 'p-c1-l2', name: 'L2', slotName: 'L', side: 'left', sortOrder: 2, labelColor: '#1890ff', deviceId: 'dev-cross-1', cardId: null }, { id: 'p-c1-l2', name: 'L2', slotName: 'L', side: 'left', sortOrder: 2, labelColor: '#1890ff', deviceId: 'dev-cross-1', cardId: null },
{ id: 'p-c1-l3', name: 'L3', slotName: 'L', side: 'left', sortOrder: 3, labelColor: '#1890ff', deviceId: 'dev-cross-1', cardId: null }, { id: 'p-c1-l3', name: 'L3', slotName: 'L', side: 'left', sortOrder: 3, labelColor: '#1890ff', deviceId: 'dev-cross-1', cardId: null },
{ id: 'p-c1-l4', name: 'L4', slotName: 'L', side: 'left', sortOrder: 4, labelColor: '#1890ff', deviceId: 'dev-cross-1', cardId: null }, { id: 'p-c1-l4', name: 'L4', slotName: 'L', side: 'left', sortOrder: 4, labelColor: '#1890ff', deviceId: 'dev-cross-1', cardId: null },
{ id: 'p-c1-l5', name: 'L5', slotName: 'L', side: 'left', sortOrder: 5, labelColor: '#1890ff', deviceId: 'dev-cross-1', cardId: null },
{ id: 'p-c1-l6', name: 'L6', slotName: 'L', side: 'left', sortOrder: 6, labelColor: '#1890ff', deviceId: 'dev-cross-1', cardId: null },
{ id: 'p-c1-l7', name: 'L7', slotName: 'L', side: 'left', sortOrder: 7, labelColor: '#1890ff', deviceId: 'dev-cross-1', cardId: null },
{ id: 'p-c1-l8', name: 'L8', slotName: 'L', side: 'left', sortOrder: 8, labelColor: '#1890ff', deviceId: 'dev-cross-1', cardId: null },
{ id: 'p-c1-s1', name: 'S1', slotName: 'S', side: 'right', sortOrder: 1, labelColor: '#52c41a', deviceId: 'dev-cross-1', cardId: null }, { id: 'p-c1-s1', name: 'S1', slotName: 'S', side: 'right', sortOrder: 1, labelColor: '#52c41a', deviceId: 'dev-cross-1', cardId: null },
{ id: 'p-c1-s2', name: 'S2', slotName: 'S', side: 'right', sortOrder: 2, labelColor: '#52c41a', deviceId: 'dev-cross-1', cardId: null }, { id: 'p-c1-s2', name: 'S2', slotName: 'S', side: 'right', sortOrder: 2, labelColor: '#52c41a', deviceId: 'dev-cross-1', cardId: null },
{ id: 'p-c1-s3', name: 'S3', slotName: 'S', side: 'right', sortOrder: 3, labelColor: '#52c41a', deviceId: 'dev-cross-1', cardId: null }, { id: 'p-c1-s3', name: 'S3', slotName: 'S', side: 'right', sortOrder: 3, labelColor: '#52c41a', deviceId: 'dev-cross-1', cardId: null },
{ id: 'p-c1-s4', name: 'S4', slotName: 'S', side: 'right', sortOrder: 4, labelColor: '#52c41a', deviceId: 'dev-cross-1', cardId: null }, { id: 'p-c1-s4', name: 'S4', slotName: 'S', side: 'right', sortOrder: 4, labelColor: '#52c41a', deviceId: 'dev-cross-1', cardId: null },
{ id: 'p-c1-s5', name: 'S5', slotName: 'S', side: 'right', sortOrder: 5, labelColor: '#52c41a', deviceId: 'dev-cross-1', cardId: null },
{ id: 'p-c1-s6', name: 'S6', slotName: 'S', side: 'right', sortOrder: 6, labelColor: '#52c41a', deviceId: 'dev-cross-1', cardId: null },
{ id: 'p-c1-s7', name: 'S7', slotName: 'S', side: 'right', sortOrder: 7, labelColor: '#52c41a', deviceId: 'dev-cross-1', cardId: null },
{ id: 'p-c1-s8', name: 'S8', slotName: 'S', side: 'right', sortOrder: 8, labelColor: '#52c41a', deviceId: 'dev-cross-1', cardId: null },
// Cross 2 ports // ===== Cross 2 (4L + 4S) =====
{ id: 'p-c2-l1', name: 'L1', slotName: 'L', side: 'left', sortOrder: 1, labelColor: '#1890ff', deviceId: 'dev-cross-2', cardId: null }, { id: 'p-c2-l1', name: 'L1', slotName: 'L', side: 'left', sortOrder: 1, labelColor: '#1890ff', deviceId: 'dev-cross-2', cardId: null },
{ id: 'p-c2-l2', name: 'L2', slotName: 'L', side: 'left', sortOrder: 2, labelColor: '#1890ff', deviceId: 'dev-cross-2', cardId: null }, { id: 'p-c2-l2', name: 'L2', slotName: 'L', side: 'left', sortOrder: 2, labelColor: '#1890ff', deviceId: 'dev-cross-2', cardId: null },
{ id: 'p-c2-l3', name: 'L3', slotName: 'L', side: 'left', sortOrder: 3, labelColor: '#1890ff', deviceId: 'dev-cross-2', cardId: null },
{ id: 'p-c2-l4', name: 'L4', slotName: 'L', side: 'left', sortOrder: 4, labelColor: '#1890ff', deviceId: 'dev-cross-2', cardId: null },
{ id: 'p-c2-s1', name: 'S1', slotName: 'S', side: 'right', sortOrder: 1, labelColor: '#52c41a', deviceId: 'dev-cross-2', cardId: null }, { id: 'p-c2-s1', name: 'S1', slotName: 'S', side: 'right', sortOrder: 1, labelColor: '#52c41a', deviceId: 'dev-cross-2', cardId: null },
{ id: 'p-c2-s2', name: 'S2', slotName: 'S', side: 'right', sortOrder: 2, labelColor: '#52c41a', deviceId: 'dev-cross-2', cardId: null }, { id: 'p-c2-s2', name: 'S2', slotName: 'S', side: 'right', sortOrder: 2, labelColor: '#52c41a', deviceId: 'dev-cross-2', cardId: null },
{ id: 'p-c2-s3', name: 'S3', slotName: 'S', side: 'right', sortOrder: 3, labelColor: '#52c41a', deviceId: 'dev-cross-2', cardId: null },
{ id: 'p-c2-s4', name: 'S4', slotName: 'S', side: 'right', sortOrder: 4, labelColor: '#52c41a', deviceId: 'dev-cross-2', cardId: null },
// DWDM card-1 ports // ===== Cross 4 (copper, 4L + 4S) =====
{ id: 'p-c4-l1', name: 'L1', slotName: 'L', side: 'left', sortOrder: 1, labelColor: '#fa8c16', deviceId: 'dev-cross-4', cardId: null },
{ id: 'p-c4-l2', name: 'L2', slotName: 'L', side: 'left', sortOrder: 2, labelColor: '#fa8c16', deviceId: 'dev-cross-4', cardId: null },
{ id: 'p-c4-l3', name: 'L3', slotName: 'L', side: 'left', sortOrder: 3, labelColor: '#fa8c16', deviceId: 'dev-cross-4', cardId: null },
{ id: 'p-c4-l4', name: 'L4', slotName: 'L', side: 'left', sortOrder: 4, labelColor: '#fa8c16', deviceId: 'dev-cross-4', cardId: null },
{ id: 'p-c4-s1', name: 'S1', slotName: 'S', side: 'right', sortOrder: 1, labelColor: '#eb2f96', deviceId: 'dev-cross-4', cardId: null },
{ id: 'p-c4-s2', name: 'S2', slotName: 'S', side: 'right', sortOrder: 2, labelColor: '#eb2f96', deviceId: 'dev-cross-4', cardId: null },
{ id: 'p-c4-s3', name: 'S3', slotName: 'S', side: 'right', sortOrder: 3, labelColor: '#eb2f96', deviceId: 'dev-cross-4', cardId: null },
{ id: 'p-c4-s4', name: 'S4', slotName: 'S', side: 'right', sortOrder: 4, labelColor: '#eb2f96', deviceId: 'dev-cross-4', cardId: null },
// ===== DWDM-1 card ports =====
{ id: 'p-dw-c1-1', name: 'IN', slotName: '1', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-dwdm-1', cardId: 'card-1' }, { id: 'p-dw-c1-1', name: 'IN', slotName: '1', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-dwdm-1', cardId: 'card-1' },
{ id: 'p-dw-c1-2', name: 'OUT', slotName: '1', side: 'right', sortOrder: 2, labelColor: '', deviceId: 'dev-dwdm-1', cardId: 'card-1' }, { id: 'p-dw-c1-2', name: 'OUT', slotName: '1', side: 'right', sortOrder: 2, labelColor: '', deviceId: 'dev-dwdm-1', cardId: 'card-1' },
// DWDM card-2 ports
{ id: 'p-dw-c2-1', name: 'IN', slotName: '2', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-dwdm-1', cardId: 'card-2' }, { id: 'p-dw-c2-1', name: 'IN', slotName: '2', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-dwdm-1', cardId: 'card-2' },
{ id: 'p-dw-c2-2', name: 'OUT', slotName: '2', side: 'right', sortOrder: 2, labelColor: '', deviceId: 'dev-dwdm-1', cardId: 'card-2' }, { id: 'p-dw-c2-2', name: 'OUT', slotName: '2', side: 'right', sortOrder: 2, labelColor: '', deviceId: 'dev-dwdm-1', cardId: 'card-2' },
// DWDM device-level ports { id: 'p-dw-c3-1', name: 'IN', slotName: '3', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-dwdm-1', cardId: 'card-3' },
{ id: 'p-dw-c3-2', name: 'OUT', slotName: '3', side: 'right', sortOrder: 2, labelColor: '', deviceId: 'dev-dwdm-1', cardId: 'card-3' },
// DWDM-1 device-level ports
{ id: 'p-dw-1', name: 'Ge0/0/1', slotName: '0', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-dwdm-1', cardId: null }, { id: 'p-dw-1', name: 'Ge0/0/1', slotName: '0', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-dwdm-1', cardId: null },
{ id: 'p-dw-2', name: 'Ge0/0/2', slotName: '0', side: 'right', sortOrder: 2, labelColor: '', deviceId: 'dev-dwdm-1', cardId: null }, { id: 'p-dw-2', name: 'Ge0/0/2', slotName: '0', side: 'right', sortOrder: 2, labelColor: '', deviceId: 'dev-dwdm-1', cardId: null },
// Router card-3 ports // ===== DWDM-2 card ports =====
{ id: 'p-rtr-c3-1', name: 'Te0/0/0/0', slotName: '1', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-router-1', cardId: 'card-3' }, { id: 'p-dw2-c7-1', name: 'IN', slotName: '1', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-dwdm-2', cardId: 'card-7' },
{ id: 'p-rtr-c3-2', name: 'Te0/0/0/1', slotName: '1', side: 'right', sortOrder: 2, labelColor: '', deviceId: 'dev-router-1', cardId: 'card-3' }, { id: 'p-dw2-c7-2', name: 'OUT', slotName: '1', side: 'right', sortOrder: 2, labelColor: '', deviceId: 'dev-dwdm-2', cardId: 'card-7' },
// Router device-level ports { id: 'p-dw2-1', name: 'Ge0/0/1', slotName: '0', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-dwdm-2', cardId: null },
{ id: 'p-dw2-2', name: 'Ge0/0/2', slotName: '0', side: 'right', sortOrder: 2, labelColor: '', deviceId: 'dev-dwdm-2', cardId: null },
// ===== SDH-1 ports =====
{ id: 'p-sdh-1', name: 'STM-1/1', slotName: '0', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-sdh-1', cardId: null },
{ id: 'p-sdh-2', name: 'STM-1/2', slotName: '0', side: 'left', sortOrder: 2, labelColor: '', deviceId: 'dev-sdh-1', cardId: null },
{ id: 'p-sdh-3', name: 'ETH-1', slotName: '0', side: 'right', sortOrder: 3, labelColor: '', deviceId: 'dev-sdh-1', cardId: null },
{ id: 'p-sdh-4', name: 'ETH-2', slotName: '0', side: 'right', sortOrder: 4, labelColor: '', deviceId: 'dev-sdh-1', cardId: null },
// ===== Router-1 card ports =====
{ id: 'p-rtr-c4-1', name: 'Te0/0/0/0', slotName: '1', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-router-1', cardId: 'card-4' },
{ id: 'p-rtr-c4-2', name: 'Te0/0/0/1', slotName: '1', side: 'right', sortOrder: 2, labelColor: '', deviceId: 'dev-router-1', cardId: 'card-4' },
{ id: 'p-rtr-c5-1', name: 'Te0/1/0/0', slotName: '2', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-router-1', cardId: 'card-5' },
{ id: 'p-rtr-c5-2', name: 'Te0/1/0/1', slotName: '2', side: 'right', sortOrder: 2, labelColor: '', deviceId: 'dev-router-1', cardId: 'card-5' },
// Router-1 device-level ports
{ id: 'p-rtr-1', name: 'Ge0/0/0', slotName: '0', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-router-1', cardId: null }, { id: 'p-rtr-1', name: 'Ge0/0/0', slotName: '0', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-router-1', cardId: null },
{ id: 'p-rtr-2', name: 'Ge0/0/1', slotName: '0', side: 'left', sortOrder: 2, labelColor: '', deviceId: 'dev-router-1', cardId: null }, { id: 'p-rtr-2', name: 'Ge0/0/1', slotName: '0', side: 'left', sortOrder: 2, labelColor: '', deviceId: 'dev-router-1', cardId: null },
{ id: 'p-rtr-3', name: 'Ge0/0/2', slotName: '0', side: 'right', sortOrder: 3, labelColor: '', deviceId: 'dev-router-1', cardId: null }, { id: 'p-rtr-3', name: 'Ge0/0/2', slotName: '0', side: 'right', sortOrder: 3, labelColor: '', deviceId: 'dev-router-1', cardId: null },
{ id: 'p-rtr-4', name: 'Ge0/0/3', slotName: '0', side: 'right', sortOrder: 4, labelColor: '', deviceId: 'dev-router-1', cardId: null }, { id: 'p-rtr-4', name: 'Ge0/0/3', slotName: '0', side: 'right', sortOrder: 4, labelColor: '', deviceId: 'dev-router-1', cardId: null },
{ id: 'p-rtr-5', name: 'Ge0/0/4', slotName: '0', side: 'right', sortOrder: 5, labelColor: '', deviceId: 'dev-router-1', cardId: null },
{ id: 'p-rtr-6', name: 'Ge0/0/5', slotName: '0', side: 'left', sortOrder: 6, labelColor: '', deviceId: 'dev-router-1', cardId: null },
// Switch ports // ===== Router-2 card ports =====
{ id: 'p-rtr2-c6-1', name: 'et-0/0/0', slotName: '0', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-router-2', cardId: 'card-6' },
{ id: 'p-rtr2-c6-2', name: 'et-0/0/1', slotName: '0', side: 'right', sortOrder: 2, labelColor: '', deviceId: 'dev-router-2', cardId: 'card-6' },
// Router-2 device ports
{ id: 'p-rtr2-1', name: 'ge-0/0/0', slotName: '0', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-router-2', cardId: null },
{ id: 'p-rtr2-2', name: 'ge-0/0/1', slotName: '0', side: 'right', sortOrder: 2, labelColor: '', deviceId: 'dev-router-2', cardId: null },
{ id: 'p-rtr2-3', name: 'ge-0/0/2', slotName: '0', side: 'right', sortOrder: 3, labelColor: '', deviceId: 'dev-router-2', cardId: null },
{ id: 'p-rtr2-4', name: 'ge-0/0/3', slotName: '0', side: 'left', sortOrder: 4, labelColor: '', deviceId: 'dev-router-2', cardId: null },
// ===== Switch-1 ports =====
{ id: 'p-sw-1', name: 'Ge1/0/1', slotName: '1', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-switch-1', cardId: null }, { id: 'p-sw-1', name: 'Ge1/0/1', slotName: '1', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-switch-1', cardId: null },
{ id: 'p-sw-2', name: 'Ge1/0/2', slotName: '1', side: 'left', sortOrder: 2, labelColor: '', deviceId: 'dev-switch-1', cardId: null }, { id: 'p-sw-2', name: 'Ge1/0/2', slotName: '1', side: 'left', sortOrder: 2, labelColor: '', deviceId: 'dev-switch-1', cardId: null },
{ id: 'p-sw-3', name: 'Ge1/0/3', slotName: '1', side: 'right', sortOrder: 3, labelColor: '', deviceId: 'dev-switch-1', cardId: null }, { id: 'p-sw-3', name: 'Ge1/0/3', slotName: '1', side: 'right', sortOrder: 3, labelColor: '', deviceId: 'dev-switch-1', cardId: null },
{ id: 'p-sw-4', name: 'Ge1/0/4', slotName: '1', side: 'right', sortOrder: 4, labelColor: '', deviceId: 'dev-switch-1', cardId: null }, { id: 'p-sw-4', name: 'Ge1/0/4', slotName: '1', side: 'right', sortOrder: 4, labelColor: '', deviceId: 'dev-switch-1', cardId: null },
{ id: 'p-sw-5', name: 'Ge1/0/5', slotName: '1', side: 'left', sortOrder: 5, labelColor: '', deviceId: 'dev-switch-1', cardId: null },
{ id: 'p-sw-6', name: 'Ge1/0/6', slotName: '1', side: 'right', sortOrder: 6, labelColor: '', deviceId: 'dev-switch-1', cardId: null },
// Server ports // ===== Switch-2 ports =====
{ id: 'p-sw2-1', name: 'Gi1/0/1', slotName: '1', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-switch-2', cardId: null },
{ id: 'p-sw2-2', name: 'Gi1/0/2', slotName: '1', side: 'left', sortOrder: 2, labelColor: '', deviceId: 'dev-switch-2', cardId: null },
{ id: 'p-sw2-3', name: 'Gi1/0/3', slotName: '1', side: 'right', sortOrder: 3, labelColor: '', deviceId: 'dev-switch-2', cardId: null },
{ id: 'p-sw2-4', name: 'Gi1/0/4', slotName: '1', side: 'right', sortOrder: 4, labelColor: '', deviceId: 'dev-switch-2', cardId: null },
// ===== Server-1 ports =====
{ id: 'p-srv-1', name: 'eth0', slotName: '0', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-server-1', cardId: null }, { id: 'p-srv-1', name: 'eth0', slotName: '0', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-server-1', cardId: null },
{ id: 'p-srv-2', name: 'eth1', slotName: '0', side: 'right', sortOrder: 2, labelColor: '', deviceId: 'dev-server-1', cardId: null }, { id: 'p-srv-2', name: 'eth1', slotName: '0', side: 'right', sortOrder: 2, labelColor: '', deviceId: 'dev-server-1', cardId: null },
// ===== Server-2 ports =====
{ id: 'p-srv2-1', name: 'eth0', slotName: '0', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-server-2', cardId: null },
{ id: 'p-srv2-2', name: 'eth1', slotName: '0', side: 'right', sortOrder: 2, labelColor: '', deviceId: 'dev-server-2', cardId: null },
// ===== SORM ports =====
{ id: 'p-sorm-1', name: 'eth0', slotName: '0', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-sorm-1', cardId: null },
{ id: 'p-sorm-2', name: 'eth1', slotName: '0', side: 'right', sortOrder: 2, labelColor: '', deviceId: 'dev-sorm-1', cardId: null },
// ===== VoIP ports =====
{ id: 'p-voip-1', name: 'WAN', slotName: '0', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-voip-1', cardId: null },
{ id: 'p-voip-2', name: 'FXS1', slotName: '0', side: 'right', sortOrder: 2, labelColor: '', deviceId: 'dev-voip-1', cardId: null },
{ id: 'p-voip-3', name: 'FXS2', slotName: '0', side: 'right', sortOrder: 3, labelColor: '', deviceId: 'dev-voip-1', cardId: null },
// Splice ports // ===== Splice-1 ports =====
{ id: 'p-sp-1', name: '1', slotName: '0', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-splice-1', cardId: null }, { id: 'p-sp-1', name: '1', slotName: '0', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-splice-1', cardId: null },
{ id: 'p-sp-2', name: '2', slotName: '0', side: 'left', sortOrder: 2, labelColor: '', deviceId: 'dev-splice-1', cardId: null }, { id: 'p-sp-2', name: '2', slotName: '0', side: 'left', sortOrder: 2, labelColor: '', deviceId: 'dev-splice-1', cardId: null },
{ id: 'p-sp-3', name: '3', slotName: '0', side: 'right', sortOrder: 3, labelColor: '', deviceId: 'dev-splice-1', cardId: null }, { id: 'p-sp-3', name: '3', slotName: '0', side: 'right', sortOrder: 3, labelColor: '', deviceId: 'dev-splice-1', cardId: null },
{ id: 'p-sp-4', name: '4', slotName: '0', side: 'right', sortOrder: 4, labelColor: '', deviceId: 'dev-splice-1', cardId: null }, { id: 'p-sp-4', name: '4', slotName: '0', side: 'right', sortOrder: 4, labelColor: '', deviceId: 'dev-splice-1', cardId: null },
{ id: 'p-sp-5', name: '5', slotName: '0', side: 'left', sortOrder: 5, labelColor: '', deviceId: 'dev-splice-1', cardId: null },
{ id: 'p-sp-6', name: '6', slotName: '0', side: 'right', sortOrder: 6, labelColor: '', deviceId: 'dev-splice-1', cardId: null },
// ===== Splice-2 ports =====
{ id: 'p-sp2-1', name: '1', slotName: '0', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-splice-2', cardId: null },
{ id: 'p-sp2-2', name: '2', slotName: '0', side: 'right', sortOrder: 2, labelColor: '', deviceId: 'dev-splice-2', cardId: null },
{ id: 'p-sp2-3', name: '3', slotName: '0', side: 'left', sortOrder: 3, labelColor: '', deviceId: 'dev-splice-2', cardId: null },
{ id: 'p-sp2-4', name: '4', slotName: '0', side: 'right', sortOrder: 4, labelColor: '', deviceId: 'dev-splice-2', cardId: null },
// Cross 3 ports (site 2) // ===== RRL ports =====
{ id: 'p-rrl-1', name: 'ETH-1', slotName: '0', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-rrl-1', cardId: null },
{ id: 'p-rrl-2', name: 'ETH-2', slotName: '0', side: 'right', sortOrder: 2, labelColor: '', deviceId: 'dev-rrl-1', cardId: null },
{ id: 'p-rrl-3', name: 'RF', slotName: '0', side: 'right', sortOrder: 3, labelColor: '', deviceId: 'dev-rrl-1', cardId: null },
// ===== Switch-3 ports =====
{ id: 'p-sw3-1', name: 'Ge0/1', slotName: '0', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-switch-3', cardId: null },
{ id: 'p-sw3-2', name: 'Ge0/2', slotName: '0', side: 'right', sortOrder: 2, labelColor: '', deviceId: 'dev-switch-3', cardId: null },
{ id: 'p-sw3-3', name: 'Ge0/3', slotName: '0', side: 'left', sortOrder: 3, labelColor: '', deviceId: 'dev-switch-3', cardId: null },
// ===== Cross 3 (6L + 6S) =====
{ id: 'p-c3-l1', name: 'L1', slotName: 'L', side: 'left', sortOrder: 1, labelColor: '#1890ff', deviceId: 'dev-cross-3', cardId: null }, { id: 'p-c3-l1', name: 'L1', slotName: 'L', side: 'left', sortOrder: 1, labelColor: '#1890ff', deviceId: 'dev-cross-3', cardId: null },
{ id: 'p-c3-l2', name: 'L2', slotName: 'L', side: 'left', sortOrder: 2, labelColor: '#1890ff', deviceId: 'dev-cross-3', cardId: null }, { id: 'p-c3-l2', name: 'L2', slotName: 'L', side: 'left', sortOrder: 2, labelColor: '#1890ff', deviceId: 'dev-cross-3', cardId: null },
{ id: 'p-c3-l3', name: 'L3', slotName: 'L', side: 'left', sortOrder: 3, labelColor: '#1890ff', deviceId: 'dev-cross-3', cardId: null }, { id: 'p-c3-l3', name: 'L3', slotName: 'L', side: 'left', sortOrder: 3, labelColor: '#1890ff', deviceId: 'dev-cross-3', cardId: null },
{ id: 'p-c3-l4', name: 'L4', slotName: 'L', side: 'left', sortOrder: 4, labelColor: '#1890ff', deviceId: 'dev-cross-3', cardId: null },
{ id: 'p-c3-l5', name: 'L5', slotName: 'L', side: 'left', sortOrder: 5, labelColor: '#1890ff', deviceId: 'dev-cross-3', cardId: null },
{ id: 'p-c3-l6', name: 'L6', slotName: 'L', side: 'left', sortOrder: 6, labelColor: '#1890ff', deviceId: 'dev-cross-3', cardId: null },
{ id: 'p-c3-s1', name: 'S1', slotName: 'S', side: 'right', sortOrder: 1, labelColor: '#52c41a', deviceId: 'dev-cross-3', cardId: null }, { id: 'p-c3-s1', name: 'S1', slotName: 'S', side: 'right', sortOrder: 1, labelColor: '#52c41a', deviceId: 'dev-cross-3', cardId: null },
{ id: 'p-c3-s2', name: 'S2', slotName: 'S', side: 'right', sortOrder: 2, labelColor: '#52c41a', deviceId: 'dev-cross-3', cardId: null }, { id: 'p-c3-s2', name: 'S2', slotName: 'S', side: 'right', sortOrder: 2, labelColor: '#52c41a', deviceId: 'dev-cross-3', cardId: null },
{ id: 'p-c3-s3', name: 'S3', slotName: 'S', side: 'right', sortOrder: 3, labelColor: '#52c41a', deviceId: 'dev-cross-3', cardId: null }, { id: 'p-c3-s3', name: 'S3', slotName: 'S', side: 'right', sortOrder: 3, labelColor: '#52c41a', deviceId: 'dev-cross-3', cardId: null },
{ id: 'p-c3-s4', name: 'S4', slotName: 'S', side: 'right', sortOrder: 4, labelColor: '#52c41a', deviceId: 'dev-cross-3', cardId: null },
{ id: 'p-c3-s5', name: 'S5', slotName: 'S', side: 'right', sortOrder: 5, labelColor: '#52c41a', deviceId: 'dev-cross-3', cardId: null },
{ id: 'p-c3-s6', name: 'S6', slotName: 'S', side: 'right', sortOrder: 6, labelColor: '#52c41a', deviceId: 'dev-cross-3', cardId: null },
// OLT ports // ===== Cross 5 (4L + 4S) =====
{ id: 'p-c5-l1', name: 'L1', slotName: 'L', side: 'left', sortOrder: 1, labelColor: '#1890ff', deviceId: 'dev-cross-5', cardId: null },
{ id: 'p-c5-l2', name: 'L2', slotName: 'L', side: 'left', sortOrder: 2, labelColor: '#1890ff', deviceId: 'dev-cross-5', cardId: null },
{ id: 'p-c5-l3', name: 'L3', slotName: 'L', side: 'left', sortOrder: 3, labelColor: '#1890ff', deviceId: 'dev-cross-5', cardId: null },
{ id: 'p-c5-l4', name: 'L4', slotName: 'L', side: 'left', sortOrder: 4, labelColor: '#1890ff', deviceId: 'dev-cross-5', cardId: null },
{ id: 'p-c5-s1', name: 'S1', slotName: 'S', side: 'right', sortOrder: 1, labelColor: '#52c41a', deviceId: 'dev-cross-5', cardId: null },
{ id: 'p-c5-s2', name: 'S2', slotName: 'S', side: 'right', sortOrder: 2, labelColor: '#52c41a', deviceId: 'dev-cross-5', cardId: null },
{ id: 'p-c5-s3', name: 'S3', slotName: 'S', side: 'right', sortOrder: 3, labelColor: '#52c41a', deviceId: 'dev-cross-5', cardId: null },
{ id: 'p-c5-s4', name: 'S4', slotName: 'S', side: 'right', sortOrder: 4, labelColor: '#52c41a', deviceId: 'dev-cross-5', cardId: null },
// ===== OLT card ports =====
{ id: 'p-olt-c8-1', name: 'GPON0', slotName: '0', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-olt-1', cardId: 'card-8' },
{ id: 'p-olt-c8-2', name: 'GPON1', slotName: '0', side: 'left', sortOrder: 2, labelColor: '', deviceId: 'dev-olt-1', cardId: 'card-8' },
// OLT device ports
{ id: 'p-olt-1', name: 'GPON0/0', slotName: '0', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-olt-1', cardId: null }, { id: 'p-olt-1', name: 'GPON0/0', slotName: '0', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-olt-1', cardId: null },
{ id: 'p-olt-2', name: 'GPON0/1', slotName: '0', side: 'left', sortOrder: 2, labelColor: '', deviceId: 'dev-olt-1', cardId: null }, { id: 'p-olt-2', name: 'GPON0/1', slotName: '0', side: 'left', sortOrder: 2, labelColor: '', deviceId: 'dev-olt-1', cardId: null },
{ id: 'p-olt-3', name: 'Uplink1', slotName: '0', side: 'right', sortOrder: 3, labelColor: '', deviceId: 'dev-olt-1', cardId: null }, { id: 'p-olt-3', name: 'Uplink1', slotName: '0', side: 'right', sortOrder: 3, labelColor: '', deviceId: 'dev-olt-1', cardId: null },
{ id: 'p-olt-4', name: 'Uplink2', slotName: '0', side: 'right', sortOrder: 4, labelColor: '', deviceId: 'dev-olt-1', cardId: null }, { id: 'p-olt-4', name: 'Uplink2', slotName: '0', side: 'right', sortOrder: 4, labelColor: '', deviceId: 'dev-olt-1', cardId: null },
// xDSL ports // ===== xDSL ports =====
{ id: 'p-xdsl-1', name: 'ADSL0/0', slotName: '0', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-xdsl-1', cardId: null }, { id: 'p-xdsl-1', name: 'ADSL0/0', slotName: '0', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-xdsl-1', cardId: null },
{ id: 'p-xdsl-2', name: 'ADSL0/1', slotName: '0', side: 'left', sortOrder: 2, labelColor: '', deviceId: 'dev-xdsl-1', cardId: null }, { id: 'p-xdsl-2', name: 'ADSL0/1', slotName: '0', side: 'left', sortOrder: 2, labelColor: '', deviceId: 'dev-xdsl-1', cardId: null },
{ id: 'p-xdsl-3', name: 'Uplink1', slotName: '0', side: 'right', sortOrder: 3, labelColor: '', deviceId: 'dev-xdsl-1', cardId: null }, { id: 'p-xdsl-3', name: 'Uplink1', slotName: '0', side: 'right', sortOrder: 3, labelColor: '', deviceId: 'dev-xdsl-1', cardId: null },
{ id: 'p-xdsl-4', name: 'Uplink2', slotName: '0', side: 'right', sortOrder: 4, labelColor: '', deviceId: 'dev-xdsl-1', cardId: null }, { id: 'p-xdsl-4', name: 'Uplink2', slotName: '0', side: 'right', sortOrder: 4, labelColor: '', deviceId: 'dev-xdsl-1', cardId: null },
// ===== Router-3 ports =====
{ id: 'p-rtr3-1', name: 'Ge0/0', slotName: '0', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-router-3', cardId: null },
{ id: 'p-rtr3-2', name: 'Ge0/1', slotName: '0', side: 'left', sortOrder: 2, labelColor: '', deviceId: 'dev-router-3', cardId: null },
{ id: 'p-rtr3-3', name: 'Ge0/2', slotName: '0', side: 'right', sortOrder: 3, labelColor: '', deviceId: 'dev-router-3', cardId: null },
{ id: 'p-rtr3-4', name: 'Ge0/3', slotName: '0', side: 'right', sortOrder: 4, labelColor: '', deviceId: 'dev-router-3', cardId: null },
// ===== MGN ports =====
{ id: 'p-mgn-1', name: 'E1-1', slotName: '0', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-mgn-1', cardId: null },
{ id: 'p-mgn-2', name: 'E1-2', slotName: '0', side: 'left', sortOrder: 2, labelColor: '', deviceId: 'dev-mgn-1', cardId: null },
{ id: 'p-mgn-3', name: 'ETH', slotName: '0', side: 'right', sortOrder: 3, labelColor: '', deviceId: 'dev-mgn-1', cardId: null },
// ===== RAN BS ports =====
{ id: 'p-ran-1', name: 'CPRI-1', slotName: '0', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-ran-bs-1', cardId: null },
{ id: 'p-ran-2', name: 'CPRI-2', slotName: '0', side: 'left', sortOrder: 2, labelColor: '', deviceId: 'dev-ran-bs-1', cardId: null },
{ id: 'p-ran-3', name: 'ETH', slotName: '0', side: 'right', sortOrder: 3, labelColor: '', deviceId: 'dev-ran-bs-1', cardId: null },
// ===== Cross 6 (6L + 6S) =====
{ id: 'p-c6-l1', name: 'L1', slotName: 'L', side: 'left', sortOrder: 1, labelColor: '#1890ff', deviceId: 'dev-cross-6', cardId: null },
{ id: 'p-c6-l2', name: 'L2', slotName: 'L', side: 'left', sortOrder: 2, labelColor: '#1890ff', deviceId: 'dev-cross-6', cardId: null },
{ id: 'p-c6-l3', name: 'L3', slotName: 'L', side: 'left', sortOrder: 3, labelColor: '#1890ff', deviceId: 'dev-cross-6', cardId: null },
{ id: 'p-c6-l4', name: 'L4', slotName: 'L', side: 'left', sortOrder: 4, labelColor: '#1890ff', deviceId: 'dev-cross-6', cardId: null },
{ id: 'p-c6-l5', name: 'L5', slotName: 'L', side: 'left', sortOrder: 5, labelColor: '#1890ff', deviceId: 'dev-cross-6', cardId: null },
{ id: 'p-c6-l6', name: 'L6', slotName: 'L', side: 'left', sortOrder: 6, labelColor: '#1890ff', deviceId: 'dev-cross-6', cardId: null },
{ id: 'p-c6-s1', name: 'S1', slotName: 'S', side: 'right', sortOrder: 1, labelColor: '#52c41a', deviceId: 'dev-cross-6', cardId: null },
{ id: 'p-c6-s2', name: 'S2', slotName: 'S', side: 'right', sortOrder: 2, labelColor: '#52c41a', deviceId: 'dev-cross-6', cardId: null },
{ id: 'p-c6-s3', name: 'S3', slotName: 'S', side: 'right', sortOrder: 3, labelColor: '#52c41a', deviceId: 'dev-cross-6', cardId: null },
{ id: 'p-c6-s4', name: 'S4', slotName: 'S', side: 'right', sortOrder: 4, labelColor: '#52c41a', deviceId: 'dev-cross-6', cardId: null },
{ id: 'p-c6-s5', name: 'S5', slotName: 'S', side: 'right', sortOrder: 5, labelColor: '#52c41a', deviceId: 'dev-cross-6', cardId: null },
{ id: 'p-c6-s6', name: 'S6', slotName: 'S', side: 'right', sortOrder: 6, labelColor: '#52c41a', deviceId: 'dev-cross-6', cardId: null },
// ===== DWDM-3 card ports =====
{ id: 'p-dw3-c9-1', name: 'IN', slotName: '1', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-dwdm-3', cardId: 'card-9' },
{ id: 'p-dw3-c9-2', name: 'OUT', slotName: '1', side: 'right', sortOrder: 2, labelColor: '', deviceId: 'dev-dwdm-3', cardId: 'card-9' },
{ id: 'p-dw3-c10-1', name: 'IN', slotName: '2', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-dwdm-3', cardId: 'card-10' },
{ id: 'p-dw3-c10-2', name: 'OUT', slotName: '2', side: 'right', sortOrder: 2, labelColor: '', deviceId: 'dev-dwdm-3', cardId: 'card-10' },
{ id: 'p-dw3-1', name: 'Ge0/0/1', slotName: '0', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-dwdm-3', cardId: null },
{ id: 'p-dw3-2', name: 'Ge0/0/2', slotName: '0', side: 'right', sortOrder: 2, labelColor: '', deviceId: 'dev-dwdm-3', cardId: null },
// ===== Router-4 card ports =====
{ id: 'p-rtr4-c11-1', name: '1/1/1', slotName: '1', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-router-4', cardId: 'card-11' },
{ id: 'p-rtr4-c11-2', name: '1/1/2', slotName: '1', side: 'right', sortOrder: 2, labelColor: '', deviceId: 'dev-router-4', cardId: 'card-11' },
// Router-4 device ports
{ id: 'p-rtr4-1', name: '1/1/c1', slotName: '0', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-router-4', cardId: null },
{ id: 'p-rtr4-2', name: '1/1/c2', slotName: '0', side: 'right', sortOrder: 2, labelColor: '', deviceId: 'dev-router-4', cardId: null },
{ id: 'p-rtr4-3', name: '1/1/c3', slotName: '0', side: 'left', sortOrder: 3, labelColor: '', deviceId: 'dev-router-4', cardId: null },
{ id: 'p-rtr4-4', name: '1/1/c4', slotName: '0', side: 'right', sortOrder: 4, labelColor: '', deviceId: 'dev-router-4', cardId: null },
// ===== Switch-4 ports =====
{ id: 'p-sw4-1', name: 'Et1', slotName: '0', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-switch-4', cardId: null },
{ id: 'p-sw4-2', name: 'Et2', slotName: '0', side: 'left', sortOrder: 2, labelColor: '', deviceId: 'dev-switch-4', cardId: null },
{ id: 'p-sw4-3', name: 'Et3', slotName: '0', side: 'right', sortOrder: 3, labelColor: '', deviceId: 'dev-switch-4', cardId: null },
{ id: 'p-sw4-4', name: 'Et4', slotName: '0', side: 'right', sortOrder: 4, labelColor: '', deviceId: 'dev-switch-4', cardId: null },
// ===== Server-3 ports =====
{ id: 'p-srv3-1', name: 'eth0', slotName: '0', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-server-3', cardId: null },
{ id: 'p-srv3-2', name: 'eth1', slotName: '0', side: 'right', sortOrder: 2, labelColor: '', deviceId: 'dev-server-3', cardId: null },
// ===== Splice-3 ports =====
{ id: 'p-sp3-1', name: '1', slotName: '0', side: 'left', sortOrder: 1, labelColor: '', deviceId: 'dev-splice-3', cardId: null },
{ id: 'p-sp3-2', name: '2', slotName: '0', side: 'right', sortOrder: 2, labelColor: '', deviceId: 'dev-splice-3', cardId: null },
{ id: 'p-sp3-3', name: '3', slotName: '0', side: 'left', sortOrder: 3, labelColor: '', deviceId: 'dev-splice-3', cardId: null },
{ id: 'p-sp3-4', name: '4', slotName: '0', side: 'right', sortOrder: 4, labelColor: '', deviceId: 'dev-splice-3', cardId: null },
], ],
lines: [ lines: [
// Cross1 L1 → DWDM card-1 IN (optical, active) // ===== Site 1 internal =====
{ id: 'line-1', name: 'ВОК Центр-DWDM-1', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Solid, portAId: 'p-c1-s1', portZId: 'p-dw-c1-1' }, // Cross1 → DWDM-1 (optical)
// Cross1 L2 → DWDM card-2 IN (optical, active) { id: 'line-1', name: 'ВОК Кросс1-DWDM1 (1)', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Solid, portAId: 'p-c1-s1', portZId: 'p-dw-c1-1' },
{ id: 'line-2', name: 'ВОК Центр-DWDM-2', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Solid, portAId: 'p-c1-s2', portZId: 'p-dw-c2-1' }, { id: 'line-2', name: 'ВОК Кросс1-DWDM1 (2)', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Solid, portAId: 'p-c1-s2', portZId: 'p-dw-c2-1' },
// DWDM card-1 OUT → Router card-3 IN (optical, active) { id: 'line-2b', name: 'ВОК Кросс1-DWDM1 (3)', templateName: '', status: EntityStatus.Planned, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Dashed, portAId: 'p-c1-s5', portZId: 'p-dw-c3-1' },
{ id: 'line-3', name: 'Транзит DWDM-RTR', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Solid, portAId: 'p-dw-c1-2', portZId: 'p-rtr-c3-1' }, // DWDM-1 → Router-1 (optical)
// Router → Switch (copper, active) { id: 'line-3', name: 'Транзит DWDM1-RTR1', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Solid, portAId: 'p-dw-c1-2', portZId: 'p-rtr-c4-1' },
{ id: 'line-4', name: 'LAN RTR-SW', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Copper, lineStyle: LineStyle.Solid, portAId: 'p-rtr-3', portZId: 'p-sw-1' }, // DWDM-1 → Router-2 (optical)
// Switch → Server (copper, active) { id: 'line-3b', name: 'Транзит DWDM1-RTR2', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Solid, portAId: 'p-dw-c2-2', portZId: 'p-rtr2-c6-1' },
{ id: 'line-5', name: 'LAN SW-SRV', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Copper, lineStyle: LineStyle.Solid, portAId: 'p-sw-3', portZId: 'p-srv-1' }, // Cross1 → DWDM-2 (optical, planned)
// Cross1 L3 → Splice (optical, planned) { id: 'line-3c', name: 'ВОК Кросс1-DWDM2', templateName: '', status: EntityStatus.Planned, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Dashed, portAId: 'p-c1-s6', portZId: 'p-dw2-c7-1' },
{ id: 'line-6', name: 'ВОК Центр-Муфта', templateName: '', status: EntityStatus.Planned, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Dashed, portAId: 'p-c1-s3', portZId: 'p-sp-1' }, // Cross1 → SDH (optical, decommissioned)
// Splice → Cross3 (optical, planned) { id: 'line-3d', name: 'ВОК Кросс1-SDH (выведен)', templateName: '', status: EntityStatus.Decommissioned, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Solid, portAId: 'p-c1-s7', portZId: 'p-sdh-1' },
{ id: 'line-7', name: 'ВОК Муфта-Северный', templateName: '', status: EntityStatus.Planned, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Dashed, portAId: 'p-sp-3', portZId: 'p-c3-l1' }, // Router-1 → Switch-1 (copper)
// Cross3 → OLT (optical, under construction) { id: 'line-4', name: 'LAN RTR1-SW1', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Copper, lineStyle: LineStyle.Solid, portAId: 'p-rtr-3', portZId: 'p-sw-1' },
// Router-1 → Switch-2 (copper)
{ id: 'line-4b', name: 'LAN RTR1-SW2', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Copper, lineStyle: LineStyle.Solid, portAId: 'p-rtr-4', portZId: 'p-sw2-1' },
// Router-2 → Switch-1 (copper, redundancy)
{ id: 'line-4c', name: 'LAN RTR2-SW1', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Copper, lineStyle: LineStyle.Solid, portAId: 'p-rtr2-2', portZId: 'p-sw-2' },
// Router-1 ↔ Router-2 (copper, peering)
{ id: 'line-4d', name: 'Peering RTR1-RTR2', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Copper, lineStyle: LineStyle.Solid, portAId: 'p-rtr-5', portZId: 'p-rtr2-3' },
// Switch-1 → Server-1 (copper)
{ id: 'line-5', name: 'LAN SW1-SRV1', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Copper, lineStyle: LineStyle.Solid, portAId: 'p-sw-3', portZId: 'p-srv-1' },
// Switch-2 → Server-2 (copper)
{ id: 'line-5b', name: 'LAN SW2-SRV2', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Copper, lineStyle: LineStyle.Solid, portAId: 'p-sw2-3', portZId: 'p-srv2-1' },
// Switch-2 → SORM (copper)
{ id: 'line-5c', name: 'LAN SW2-SORM', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Copper, lineStyle: LineStyle.Solid, portAId: 'p-sw2-4', portZId: 'p-sorm-1' },
// Cross4 → VoIP (copper)
{ id: 'line-5d', name: 'Медь КРТ1-VoIP', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Copper, lineStyle: LineStyle.Solid, portAId: 'p-c4-s1', portZId: 'p-voip-1' },
// Cross1 → Cross2 (optical)
{ id: 'line-12', name: 'Кросс1-Кросс2', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Solid, portAId: 'p-c1-s4', portZId: 'p-c2-l1' },
// Cross2 → Router-1 (optical, reserved)
{ id: 'line-10', name: 'Резерв Кросс2-RTR1', templateName: '', status: EntityStatus.Reserved, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Dotted, portAId: 'p-c2-s1', portZId: 'p-rtr-1' },
// Cross2 → Router-2 (optical, reserved)
{ id: 'line-10b', name: 'Резерв Кросс2-RTR2', templateName: '', status: EntityStatus.Reserved, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Dotted, portAId: 'p-c2-s2', portZId: 'p-rtr2-1' },
// Router-1 self-loop (loopback)
{ id: 'line-11', name: 'Перемычка RTR1', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Copper, lineStyle: LineStyle.Solid, portAId: 'p-rtr-2', portZId: 'p-rtr-6' },
// ===== Site 1 → Site 1-1 (cross-site) =====
{ id: 'line-6', name: 'ВОК Центр-Муфта1', templateName: '', status: EntityStatus.Planned, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Dashed, portAId: 'p-c1-s3', portZId: 'p-sp-1' },
{ id: 'line-6b', name: 'ВОК Центр-Муфта1 (2)', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Solid, portAId: 'p-c1-s8', portZId: 'p-sp-5' },
// Splice-1 → Splice-2
{ id: 'line-6c', name: 'ВОК Муфта1-Муфта2', templateName: '', status: EntityStatus.Planned, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Dashed, portAId: 'p-sp-4', portZId: 'p-sp2-1' },
// ===== Site 1-1 → Site 2 (cross-site) =====
{ id: 'line-7', name: 'ВОК Муфта1-Северный', templateName: '', status: EntityStatus.Planned, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Dashed, portAId: 'p-sp-3', portZId: 'p-c3-l1' },
{ id: 'line-7b', name: 'ВОК Муфта1-Северный (2)', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Solid, portAId: 'p-sp-6', portZId: 'p-c3-l4' },
// ===== Site 1 → Site 1-2 (RRL link) =====
{ id: 'line-rrl-1', name: 'LAN SW3-RRL', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Copper, lineStyle: LineStyle.Solid, portAId: 'p-sw3-1', portZId: 'p-rrl-1' },
{ id: 'line-rrl-2', name: 'РРС канал', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Wireless, lineStyle: LineStyle.Dotted, portAId: 'p-rrl-3', portZId: 'p-c5-l1' },
// ===== Site 2 internal =====
// Cross3 → OLT (optical)
{ id: 'line-8', name: 'ВОК Кросс3-OLT', templateName: '', status: EntityStatus.UnderConstruction, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Solid, portAId: 'p-c3-s1', portZId: 'p-olt-1' }, { id: 'line-8', name: 'ВОК Кросс3-OLT', templateName: '', status: EntityStatus.UnderConstruction, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Solid, portAId: 'p-c3-s1', portZId: 'p-olt-1' },
// Cross3 → Router-3 (optical)
{ id: 'line-8b', name: 'ВОК Кросс3-RTR3', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Solid, portAId: 'p-c3-s3', portZId: 'p-rtr3-1' },
// Cross5 → xDSL (optical)
{ id: 'line-8c', name: 'ВОК Кросс5-DSLAM', templateName: '', status: EntityStatus.Faulty, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Solid, portAId: 'p-c5-s1', portZId: 'p-xdsl-1' },
// Cross3 → Cross5 (optical)
{ id: 'line-8d', name: 'Кросс3-Кросс5', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Solid, portAId: 'p-c3-s4', portZId: 'p-c5-l2' },
// OLT → xDSL (copper, faulty) // OLT → xDSL (copper, faulty)
{ id: 'line-9', name: 'Транзит OLT-DSLAM', templateName: '', status: EntityStatus.Faulty, type: LineType.Simple, medium: Medium.Copper, lineStyle: LineStyle.Solid, portAId: 'p-olt-3', portZId: 'p-xdsl-3' }, { id: 'line-9', name: 'Транзит OLT-DSLAM', templateName: '', status: EntityStatus.Faulty, type: LineType.Simple, medium: Medium.Copper, lineStyle: LineStyle.Solid, portAId: 'p-olt-3', portZId: 'p-xdsl-3' },
// Cross2 → Router (optical, reserved) // Router-3 → MGN (copper)
{ id: 'line-10', name: 'Резерв Кросс2-RTR', templateName: '', status: EntityStatus.Reserved, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Dotted, portAId: 'p-c2-s1', portZId: 'p-rtr-1' }, { id: 'line-9b', name: 'LAN RTR3-MGN', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Copper, lineStyle: LineStyle.Solid, portAId: 'p-rtr3-3', portZId: 'p-mgn-3' },
// Router → Router (loopback copper) // Cross3 → RAN BS (optical, under construction)
{ id: 'line-11', name: 'Перемычка RTR', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Copper, lineStyle: LineStyle.Solid, portAId: 'p-rtr-2', portZId: 'p-rtr-4' }, { id: 'line-9c', name: 'ВОК Кросс3-БС', templateName: '', status: EntityStatus.UnderConstruction, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Solid, portAId: 'p-c3-s5', portZId: 'p-ran-1' },
// Cross1 → Cross2 (optical, active)
{ id: 'line-12', name: 'Кросс-кросс', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Solid, portAId: 'p-c1-s4', portZId: 'p-c2-l1' }, // ===== Site 1 → Site 2 direct (cross-site decommissioned) =====
// Cross1 L4 → Cross3 L2 (optical, decommissioned)
{ id: 'line-13', name: 'ВОК Центр-Север (выведен)', templateName: '', status: EntityStatus.Decommissioned, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Solid, portAId: 'p-c1-l4', portZId: 'p-c3-l2' }, { id: 'line-13', name: 'ВОК Центр-Север (выведен)', templateName: '', status: EntityStatus.Decommissioned, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Solid, portAId: 'p-c1-l4', portZId: 'p-c3-l2' },
// Complex line: Cross3 → xDSL (optical, with fibers)
// ===== Site 1 → Site 3 (cross-site) =====
{ id: 'line-s1-s3', name: 'ВОК Центр-Южный (1)', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Solid, portAId: 'p-c1-l5', portZId: 'p-c6-l1' },
{ id: 'line-s1-s3b', name: 'ВОК Центр-Южный (2)', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Solid, portAId: 'p-c1-l6', portZId: 'p-c6-l2' },
// ===== Site 2 → Site 3 (cross-site) =====
{ id: 'line-s2-s3', name: 'ВОК Север-Южный', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Solid, portAId: 'p-c3-l5', portZId: 'p-c6-l3' },
// ===== Site 3 internal =====
// Cross6 → DWDM-3
{ id: 'line-s3-1', name: 'ВОК Кросс6-DWDM3 (1)', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Solid, portAId: 'p-c6-s1', portZId: 'p-dw3-c9-1' },
{ id: 'line-s3-1b', name: 'ВОК Кросс6-DWDM3 (2)', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Solid, portAId: 'p-c6-s2', portZId: 'p-dw3-c10-1' },
// DWDM-3 → Router-4
{ id: 'line-s3-2', name: 'Транзит DWDM3-RTR4', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Solid, portAId: 'p-dw3-c9-2', portZId: 'p-rtr4-c11-1' },
// Router-4 → Switch-4 (copper)
{ id: 'line-s3-3', name: 'LAN RTR4-SW4', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Copper, lineStyle: LineStyle.Solid, portAId: 'p-rtr4-2', portZId: 'p-sw4-1' },
// Switch-4 → Server-3 (copper)
{ id: 'line-s3-4', name: 'LAN SW4-SRV3', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Copper, lineStyle: LineStyle.Solid, portAId: 'p-sw4-3', portZId: 'p-srv3-1' },
// Cross6 → Splice-3
{ id: 'line-s3-5', name: 'ВОК Кросс6-Муфта3', templateName: '', status: EntityStatus.Active, type: LineType.Simple, medium: Medium.Optical, lineStyle: LineStyle.Solid, portAId: 'p-c6-s5', portZId: 'p-sp3-1' },
// ===== Complex lines =====
{ id: 'line-14', name: 'Комплекс Кросс3-DSLAM', templateName: 'TEMPLATE-01', status: EntityStatus.Active, type: LineType.Complex, medium: Medium.Optical, lineStyle: LineStyle.Solid, portAId: 'p-c3-s2', portZId: 'p-xdsl-1' }, { id: 'line-14', name: 'Комплекс Кросс3-DSLAM', templateName: 'TEMPLATE-01', status: EntityStatus.Active, type: LineType.Complex, medium: Medium.Optical, lineStyle: LineStyle.Solid, portAId: 'p-c3-s2', portZId: 'p-xdsl-1' },
// Switch → OLT uplink (copper, unknown)
{ id: 'line-15', name: 'Транзит SW-OLT', templateName: '', status: EntityStatus.Unknown, type: LineType.Simple, medium: Medium.Copper, lineStyle: LineStyle.Dotted, portAId: 'p-sw-4', portZId: 'p-olt-4' }, // ===== Cross-site unknown status =====
{ id: 'line-15', name: 'Транзит SW1-OLT', templateName: '', status: EntityStatus.Unknown, type: LineType.Simple, medium: Medium.Copper, lineStyle: LineStyle.Dotted, portAId: 'p-sw-4', portZId: 'p-olt-4' },
], ],
fibers: [ fibers: [
{ id: 'fiber-1', name: 'Волокно 1', status: EntityStatus.Active, lineId: 'line-14', portAId: 'p-c3-s2', portZId: 'p-xdsl-1' }, { id: 'fiber-1', name: 'Волокно 1', status: EntityStatus.Active, lineId: 'line-14', portAId: 'p-c3-s2', portZId: 'p-xdsl-1' },
{ id: 'fiber-2', name: 'Волокно 2', status: EntityStatus.Planned, lineId: 'line-14', portAId: 'p-c3-s3', portZId: 'p-xdsl-2' }, { id: 'fiber-2', name: 'Волокно 2', status: EntityStatus.Planned, lineId: 'line-14', portAId: 'p-c3-s6', portZId: 'p-xdsl-2' },
{ id: 'fiber-3', name: 'Волокно 3', status: EntityStatus.Active, lineId: 'line-14', portAId: 'p-c3-l6', portZId: 'p-xdsl-4' },
], ],
}; };