Last active
November 21, 2023 00:48
-
-
Save johanmendezb/a163c247270994c08bf040ebf77520bd to your computer and use it in GitHub Desktop.
Big Track model example
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
classDiagram | |
class ExtractionState { | |
name: 'sentToGeology, registeredWithOutGrade, waitingForLaboratoryResult, storageZoneAssigned' | |
} | |
class StockPileItem { // Editable in Admin | |
capacity: number | |
name: string | |
} | |
class StockPile { | |
currentStock: number // Cupo actual/Capacidad | |
averageGrade: number // Promedio de Ley | |
uuid: string | |
ExtractionRecords: ExtractionRegistry[] | |
history: StockPileHistory[] | |
details: StockPileItem | |
} | |
class LaboratoryAnalysisResult { | |
grade: number // Ley | |
humidity: number // Humedad | |
analysisType: 'Absorción atómica, Ensayo al fuego, Gavimetría' // Tipo de prueba | |
sampleSize: string // V2 | |
analystComments: string // V2 | |
analysisEquipment: string // V2 | |
date: string | |
} | |
class LaboratorySample { | |
source: 'extraction, stockpile, grinding' // Origen | |
uuid: string | |
status: 'pending, completed, rejected, inProgress' | |
date: string | |
project: Project | |
sourceUUID: string // Link to the registry id | |
analysisResult: LaboratoryAnalysisResult | |
type: "wet", "head", "tail", | |
} | |
class ExtractionHistory { | |
step: string | |
date: string | |
uuid: string | |
} | |
class ExtractionRecordType { | |
uuid: string | |
mineral: string | |
grade: number | |
} | |
class StockPileHistory { | |
step: 'in, grinding, leaching' | |
date: string | |
owner: Employee | |
stockPileID: stockPile['uuid'] | |
} | |
"Modulo de Planta de Producción - Molienda" | |
class Grinding { | |
mineralSource: string; "third_party" o "own" o "mixed" // Origen de mineral, | |
weight: number // "Peso de banda promedio(kg Pie de banda)" | |
speed: number // "Velocidad banda(m/s)(opcional)" | |
timeWorked: number // "Tiempo operado hora, minutos" 8.1 | |
humidity: number // Value coming from lab result | |
laboratorySamples: LaboratorySample[] // One-to-many relationship with LaboratorySample | |
date: string // para V1.1 | |
temperature: number // V2 | |
machinePower: number // V2 | |
grinderType: string // V2 | |
feedSize: string // V2 | |
} | |
class GravimetricConcentration { | |
weight: number | |
laboratorySamples: LaboratorySample[] // One-to-many relationship with LaboratorySample | |
} | |
class FlotationConcentration { | |
laboratorySamples: LaboratorySample[] // One-to-many relationship with LaboratorySample | |
leachingType: string // V2 | |
reagentsUsed: string[] // V2 | |
frothHeight: number // V2 | |
airFlowRate: number // V2 | |
frotherDosingRate: number // V2 | |
collectorDosingRate: number // V2 | |
pHLevel: number // V2 | |
} | |
"Modulo de Planta de Producción - Concentración gravimétrica/Jig y flotación" | |
class Concentration { | |
gravimetricConcentration: GravimetricConcentration // Optional | |
flotationConcentration: FlotationConcentration | |
date: string // V1.1 | |
pulpDensity: number // V2 | |
solidPercentage: number // V2 | |
pHLevel: number // V2 | |
concentrationTime: number // V2 | |
particleSize: number // V2 | |
chemicalDosingRate: number // V2 | |
settlingRate: number // V2 | |
overflowRate: number // V2 | |
} | |
class Shaker { "Setting inicial del proyecto" | |
name: string; | |
capacity: number; "capacidad en m3" | |
diameter: number; "diámetro en mts" | |
isActive: boolean; | |
project: Project; | |
} | |
"Modulo de Planta de Producción - Lixiviación" | |
class Leaching { | |
leach_type: string; // Setting inicial en el admin puede ser "continuous" o "batch" son campos fijos por proyecto | |
shaker?: Shaker; // "Seleccionar el agitador", setting del setup inicial en el admin | |
start_day_time?: string; // "Fecha y Hora de inicio" | |
free_height?: number; // "Altura Libre (mts)" | |
average_flow?: number; // "Flujo promedio (m3/h)" | |
solid_percentage: number // "Porcentaje de sólidos" | |
laboratorySamples: LaboratorySample[] // One-to-many relationship with LaboratorySample | |
end_day_time?: string; // "Fecha y Hora de inicio" | |
} | |
"Modulo de Planta de Producción - Solución/precipitación" | |
class SolutionPrecipitation { | |
cubic_meters: number; // "Metros cúbicos" | |
time_worked: number; // "Horas operadas" | |
laboratorySamples: LaboratorySample[] // One-to-many relationship with LaboratorySample | |
precipitationChemicals: string[] // V2 | |
precipitationTemperature: number // V2 | |
precipitationTime: number; // V2 | |
coagulantDosingRate: number; // V2 | |
pHLevel: number; // V2 | |
settlingTankSize: number; // V2 | |
} | |
class GoldBar { | |
laboratorySamples: LaboratorySample[] // One-to-many relationship with LaboratorySample | |
weight: number; // "Peso barra/lingote (gr)" | |
origin: string; // "Procedencia" puede ser "concentrate" o "gravity" | |
} | |
"Modulo de Planta de Producción - Fundición" | |
class Foundry { | |
delivery_type: string; // setting del setup inicial en el admin pede ser "free_gold", "precipitate" o "mixed" | |
processed_precipitate?: number // "Kg Precipitado Procesados" | |
gravimetric_concentrate?: number // "Kg concentrado gravimétrico" | |
grams_refined_gold?: number // "Gramos Doré precipitado" | |
gravimetric_dore_grams?: number; // "Gramos Doré gravimétrico" | |
time_worked: number; // "Horas Operadas" | |
gold_bars: GoldBar[] | |
date: string // V1.1 | |
meltingTemperature: number // V2 | |
castingMachineType: string // V2 | |
moldType: string // V2 | |
fluxComposition: string[] // V2 | |
refiningEfficiency: number // V2 | |
} | |
class Shift { // Editable in Admin | |
name: string | |
hoursPerShift: string | |
} | |
class EmployeeShift { | |
shift: Shift | |
project: Project | |
} | |
class ExtractionRegistry { | |
date: string | |
extractionLevelName: string // Nivel de extracción | |
extractionSourceName: string // Área de extracción | |
advancedMeters: number // Metros avanzados | |
mineral: number | |
noLaboratorySample: boolean // Sin registro de muestra | |
sterileMineral: string // Toneladas de esteril | |
laboratorySamples: LaboratorySample[] // One-to-many relationship with LaboratorySample | |
code: string // UUID v1 | |
state: ExtractionState | |
grade: number // Lab and Geology can edit this | |
stockPile: StockPile['name'] // Editable at geology step | |
history: ExtractionHistory[] | |
} | |
class EmployeeHistory { | |
registres: Registres[]// Depends on the operation done | |
} | |
class User { | |
userName: string | |
password: string | |
company: Company | |
} | |
class Employee {// relationship with User | |
projects: Project[] | |
shift: Shift[] | |
fullName: string | |
employeeID: string | |
role: 'mineAdmin, geology, extraction, plant, laboratory, owner, dashboardViewer, ' | |
contactNumber: string | |
email: string | |
history: EmployeeHistory | |
} | |
class Project { | |
name: string | |
status: string | |
employees: Employee[] | |
stockPileItem: StockPileItem[] | |
shifts: Shift[] | |
shakers: Shaker[] | |
} | |
class Company { | |
projects: Project[] | |
shifts: Shift[] | |
fullName: string | |
employeeID: string | |
position: string | |
contactNumber: string | |
email: string | |
users: User[] | |
laboratorySamples: LaboratorySample[] // One-to-many relationship with LaboratorySample | |
} | |
class Cyanidation { // WIP | |
leachingType: string | |
date: string | |
uuid: string | |
status: string | |
date: string | |
project: string | |
sourceUUID: string | |
laboratorySamples: LaboratorySample[] // One-to-many relationship with LaboratorySample | |
} | |
class SolutionPrecipitation { // WIP | |
precipitationChemicals: string[] | |
precipitationTemperature: number | |
date: string | |
precipitationTime: number | |
coagulantDosingRate: number | |
pHLevel: number | |
settlingTankSize: number | |
laboratorySamples: LaboratorySample[] // One-to-many relationship with LaboratorySample | |
} | |
class Foundry { // WIP | |
processedPrecipitate: number | |
gramsRefinedGold: number | |
date: string | |
gramsGoldDore: number | |
meltingTemperature: number | |
castingMachineType: string | |
moldType: string | |
fluxComposition: string[] | |
refiningEfficiency: number | |
laboratorySamples: LaboratorySample[] // One-to-many relationship with LaboratorySample | |
} | |
ExtractionRegistry --|> LaboratorySample | |
ExtractionRegistry --|> ExtractionHistory | |
StockPile --|> ExtractionRecordType | |
StockPile --|> StockPileHistory | |
Grinding --|> LaboratorySample | |
Concentration --|> LaboratorySample | |
FlotationConcentration --|> LaboratorySample | |
Cyanidation --|> LaboratorySample | |
SolutionPrecipitation --|> LaboratorySample | |
Foundry --|> LaboratorySample |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment