update
This commit is contained in:
1 parent
83278b2998
commit
b38ceec784
128 files changed
+51554
No files matched your search
@@ -0,0 +1,137 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "DAT10_Tactical_SupplyChain_Inventory_Schema",
|
||||
"description": "전술 통신 두절 환경 야전 군수 재고 및 방산 공급망 트랜잭션 표준 입력 스키마",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"transaction_id": {
|
||||
"type": "string",
|
||||
"pattern": "^TX-[A-Z0-9]{8,16}$",
|
||||
"description": "고유 트랜잭션 식별자 (UUID 또는 해시 기반)"
|
||||
},
|
||||
"terminal_id": {
|
||||
"type": "string",
|
||||
"pattern": "^TERM-[A-Z0-9]{4,8}$",
|
||||
"description": "작전 단말기 ID"
|
||||
},
|
||||
"unit_id": {
|
||||
"type": "string",
|
||||
"pattern": "^(DIV|BDE|BN|CO)-[0-9]{2,4}$",
|
||||
"description": "부대 제대 식별자"
|
||||
},
|
||||
"nsn_code": {
|
||||
"type": "string",
|
||||
"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{3}-[0-9]{4}$",
|
||||
"description": "국가재고번호 (NATO Stock Number)"
|
||||
},
|
||||
"item_name": {
|
||||
"type": "string",
|
||||
"minLength": 2,
|
||||
"maxLength": 100,
|
||||
"description": "품목명"
|
||||
},
|
||||
"supply_class": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"Class_I",
|
||||
"Class_II",
|
||||
"Class_III",
|
||||
"Class_IV",
|
||||
"Class_V",
|
||||
"Class_IX"
|
||||
],
|
||||
"description": "군수 보급 분류 (I:식량, II:피복장구, III:유류, IV:건설자재, V:탄약, IX:수리부속)"
|
||||
},
|
||||
"tx_type": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"RECEIPT",
|
||||
"ISSUE",
|
||||
"TRANSFER",
|
||||
"DISPOSAL",
|
||||
"ADJUSTMENT",
|
||||
"FIELD_CONSUME"
|
||||
],
|
||||
"description": "트랜잭션 유형 (입고, 불출, 이관, 폐기, 재고조정, 야전소모)"
|
||||
},
|
||||
"quantity": {
|
||||
"type": "integer",
|
||||
"minimum": 1,
|
||||
"maximum": 1000000,
|
||||
"description": "변동 수량"
|
||||
},
|
||||
"current_stock": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"description": "트랜잭션 발생 직후 로컬 잔여 재고"
|
||||
},
|
||||
"unit_cost": {
|
||||
"type": "number",
|
||||
"minimum": 0.0,
|
||||
"description": "단위당 조달 단가 (USD / KRW)"
|
||||
},
|
||||
"comms_status": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"ONLINE",
|
||||
"OFFLINE_LOCAL",
|
||||
"OFFLINE_P2P",
|
||||
"DEGRADED_EW"
|
||||
],
|
||||
"description": "트랜잭션 기록 당시 통신 상태"
|
||||
},
|
||||
"grid_coords": {
|
||||
"type": "string",
|
||||
"pattern": "^[0-9]{2}[A-Z]{3}[0-9]{8}$",
|
||||
"description": "MGRS 군사격자 좌표 (예: 52SDJ12345678)"
|
||||
},
|
||||
"weather_condition": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"CLEAR",
|
||||
"HEAVY_RAIN",
|
||||
"SNOW_STORM",
|
||||
"DESERT_HEAT",
|
||||
"FOG"
|
||||
],
|
||||
"description": "야전 기상 환경"
|
||||
},
|
||||
"lamport_timestamp": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"description": "분산 인과율 추적을 위한 램포트 논리 시계 (Lamport Logical Clock)"
|
||||
},
|
||||
"timestamp_utc": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"description": "ISO 8601 UTC 생성 일시"
|
||||
},
|
||||
"prev_hash": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-f0-9]{64}$",
|
||||
"description": "이전 로컬 트랜잭션 레코드의 SHA-256 해시"
|
||||
},
|
||||
"record_hash": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-f0-9]{64}$",
|
||||
"description": "무결성 보증을 위한 본 트랜잭션의 SHA-256 해시"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"transaction_id",
|
||||
"terminal_id",
|
||||
"unit_id",
|
||||
"nsn_code",
|
||||
"item_name",
|
||||
"supply_class",
|
||||
"tx_type",
|
||||
"quantity",
|
||||
"current_stock",
|
||||
"comms_status",
|
||||
"lamport_timestamp",
|
||||
"timestamp_utc",
|
||||
"prev_hash",
|
||||
"record_hash"
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
||||
Reference in new issue
Block a user