Cucumber/cucumber-frontend/src/core/services/greenhouse-service.ts
2024-12-25 23:33:52 +04:00

94 lines
3.4 KiB
TypeScript

import { Greenhouse, GreenhouseInfo } from "../api/data-contracts";
export type HistoryData = {
id: number,
action: string,
startAt: string,
endAt: string
}
export type TemperatureHistoryData = {
id: number,
value: number,
date: string
}
export type HumidityHistoryData = {
id: number,
value: number,
date: string
}
export default class GreenhouseService {
private static _info: GreenhouseInfo = {} as GreenhouseInfo;
public getData(id: number): GreenhouseInfo {
if (GreenhouseService._info.id) return GreenhouseService._info;
let info = {
id: id,
percentWater: randomInt(50, 60),
soilTemperature: randomInt(17, 28),
pumpStatus: randomInt(0, 1) == 1,
heatingStatus: randomInt(0, 1) == 1,
autoWateringStatus: randomInt(0, 1) == 1
};
GreenhouseService._info = info;
return info;
}
public setSettings(settings: Greenhouse): boolean {
let newInfo = {
id: settings.id,
percentWater: randomInt(50, 60),
soilTemperature: randomInt(17, 28),
pumpStatus: randomInt(0, 1) == 1,
heatingStatus: settings.heatingMode,
autoWateringStatus: settings.wateringMode
} as GreenhouseInfo;
GreenhouseService._info = newInfo;
return true;
}
public getCommandsHistory(id: number): HistoryData[] {
return [
{ id: 1, action: "Открыт вентиль", startAt: "10.12.2024", endAt: "11.12.2024" },
{ id: 2, action: "Закрыт вентиль", startAt: "11.12.2024", endAt: "14.12.2024" },
{ id: 3, action: "Открыт вентиль", startAt: "14.12.2024", endAt: "15.12.2024" },
{ id: 4, action: "Закрыт вентиль", startAt: "15.12.2024", endAt: "17.12.2024" },
{ id: 5, action: "Открыт вентиль", startAt: "17.12.2024", endAt: "18.12.2024" },
{ id: 6, action: "Включен нагреватель", startAt: "18.12.2024", endAt: "22.12.2024"},
{ id: 7, action: "Выключен нагреватель", startAt: "22.12.2024", endAt: "24.12.2024"},
]
}
public getTemperatureHistory(id: number): TemperatureHistoryData[] {
return [
{ id: 1, value: 30, date: "10.12.2024" },
{ id: 2, value: 28, date: "12.12.2024" },
{ id: 3, value: 29, date: "14.12.2024" },
{ id: 4, value: 31, date: "16.12.2024" },
{ id: 5, value: 27, date: "18.12.2024" },
{ id: 6, value: 26, date: "20.12.2024" },
{ id: 7, value: 32, date: "22.12.2024" },
{ id: 8, value: 33, date: "24.12.2024" },
]
}
public getHumidityHistory(id: number): HumidityHistoryData[] {
return [
{ id: 1, value: 78, date: "10.12.2024" },
{ id: 2, value: 80, date: "12.12.2024" },
{ id: 3, value: 81, date: "14.12.2024" },
{ id: 4, value: 82, date: "16.12.2024" },
{ id: 5, value: 83, date: "18.12.2024" },
{ id: 6, value: 79, date: "20.12.2024" },
{ id: 7, value: 84, date: "22.12.2024" },
{ id: 8, value: 85, date: "24.12.2024" },
]
}
}
function randomInt(min: number, max: number): number {
return Math.floor(Math.random() * (max - min + 1) + min);
}