Files
Simulation/Assets/WorkSpace/LH/SimulationInfo.cs
2025-05-12 18:11:00 +09:00

172 lines
4.2 KiB
C#

using UnityEngine;
using System;
using System.Collections.Generic;
using Newtonsoft.Json;
namespace Octopus.Simulator
{
[Serializable]
public class SimulationInfo
{
public int status;
public string code;
public string message;
public SimulationData data;
public Meta meta;
public string timestamp;
}
[Serializable]
public class SimulationData
{
public int id;
public int projectId;
public int logicId;
public int userId;
public string name;
public string simulationCode;
public logicData logicData;
public SimulationParameters parameters;
public string status;
public string resultData;
public string createdAt;
public string updatedAt;
public string deletedAt;
public SimulationProject project;
public SimulationComponent component;
public SimulationUser user;
}
[Serializable]
public class logicData
{
public string name;
public bool trace;
public List<LogicQueue> queues;
public List<LogicResource> resources;
public List<LogicComponent> components;
public int simulation_time;
}
public class SimulationParameters
{
public int speed;
public int duration;
public bool realtime;
}
public enum LogicItemType
{
Queue,
Resource,
Component
}
public interface ILogicItem
{
string Name { get; }
string Description { get; }
LogicItemType ItemType { get; }
}
[Serializable]
public class LogicQueue:ILogicItem
{
public string name="";
public string description="";
public string Name => name;
public string Description => description;
public LogicItemType ItemType => LogicItemType.Queue;
}
[Serializable]
public class LogicResource:ILogicItem
{
public string name="";
public int capacity=0;
public string description="";
public int repair_time=0;
public double speed_factor=0.0;
public OperationHours OperationHours;
public int breakdown_interval=0;
public string Name => name;
public string Description => description;
public LogicItemType ItemType => LogicItemType.Resource;
}
[Serializable]
public class OperationHours
{
public int end=0;
public int start=0;
}
[Serializable]
public class LogicComponent:ILogicItem
{
public string name="";
public int rate=0;
public string type="";
public string description="";
public string output_queue="";
public string output_resource="";
public int transport_time=0;
public string required_resource="";
public int processing_time=0;
public string Name => name;
public string Description => description;
public LogicItemType ItemType => LogicItemType.Component;
}
[Serializable]
public class SimulationProject
{
public int id;
public int userId;
public string name;
public string description;
public string createdAt;
public string updatedAt;
}
[Serializable]
public class SimulationComponent
{
public int id;
public int userId;
public string name;
public string description;
public string createdAt;
public string updatedAt;
}
public class SimulationUser
{
public int id;
public string ccPositionId;
public string userid;
public string name;
public string auth;
public string email;
public bool active;
public string joinDate;
public bool activeClassifyRule;
public string signatureId;
public string employeeNumber;
public string resignationDate;
public string profileId;
public string createdAt;
public string updatedAt;
}
[Serializable]
public class Meta
{
public Param param;
}
[Serializable]
public class Param
{
public int id;
}
}