- CitrineOS core extracted (CSMS OCPP 2.0.1) - OpenOCPP extracted (firmware OCPP 1.6J/2.0.1) - ShapeShifter library installed (pip install -e) - ShapeShifter specification extracted - EVerest extracted TODO updated with progress
114 lines
2.5 KiB
TypeScript
114 lines
2.5 KiB
TypeScript
// SPDX-FileCopyrightText: 2025 Contributors to the CitrineOS Project
|
|
//
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
import { DataTypes, QueryInterface } from 'sequelize';
|
|
|
|
export async function up(queryInterface: QueryInterface): Promise<void> {
|
|
await queryInterface.createTable('InstallCertificateAttempts', {
|
|
id: {
|
|
type: DataTypes.INTEGER,
|
|
primaryKey: true,
|
|
autoIncrement: true,
|
|
allowNull: false,
|
|
},
|
|
stationId: {
|
|
type: DataTypes.STRING(36),
|
|
allowNull: false,
|
|
references: {
|
|
model: 'ChargingStations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
certificateType: {
|
|
type: DataTypes.STRING,
|
|
allowNull: false,
|
|
},
|
|
certificateId: {
|
|
type: DataTypes.INTEGER,
|
|
references: {
|
|
model: 'Certificates',
|
|
key: 'id',
|
|
},
|
|
onUpdate: 'CASCADE',
|
|
onDelete: 'CASCADE',
|
|
},
|
|
status: {
|
|
type: DataTypes.STRING,
|
|
},
|
|
tenantId: {
|
|
type: DataTypes.INTEGER,
|
|
allowNull: false,
|
|
references: {
|
|
model: 'Tenants',
|
|
key: 'id',
|
|
},
|
|
onUpdate: 'CASCADE',
|
|
onDelete: 'RESTRICT',
|
|
},
|
|
createdAt: {
|
|
type: DataTypes.DATE,
|
|
allowNull: false,
|
|
},
|
|
updatedAt: {
|
|
type: DataTypes.DATE,
|
|
allowNull: false,
|
|
},
|
|
});
|
|
|
|
await queryInterface.createTable('DeleteCertificateAttempts', {
|
|
id: {
|
|
type: DataTypes.INTEGER,
|
|
primaryKey: true,
|
|
autoIncrement: true,
|
|
allowNull: false,
|
|
},
|
|
stationId: {
|
|
type: DataTypes.STRING(36),
|
|
allowNull: false,
|
|
references: {
|
|
model: 'ChargingStations',
|
|
key: 'id',
|
|
},
|
|
},
|
|
hashAlgorithm: {
|
|
type: DataTypes.STRING,
|
|
allowNull: false,
|
|
},
|
|
issuerNameHash: {
|
|
type: DataTypes.STRING,
|
|
},
|
|
issuerKeyHash: {
|
|
type: DataTypes.STRING,
|
|
},
|
|
serialNumber: {
|
|
type: DataTypes.STRING,
|
|
},
|
|
status: {
|
|
type: DataTypes.STRING,
|
|
},
|
|
tenantId: {
|
|
type: DataTypes.INTEGER,
|
|
allowNull: false,
|
|
references: {
|
|
model: 'Tenants',
|
|
key: 'id',
|
|
},
|
|
onUpdate: 'CASCADE',
|
|
onDelete: 'RESTRICT',
|
|
},
|
|
createdAt: {
|
|
type: DataTypes.DATE,
|
|
allowNull: false,
|
|
},
|
|
updatedAt: {
|
|
type: DataTypes.DATE,
|
|
allowNull: false,
|
|
},
|
|
});
|
|
}
|
|
|
|
export async function down(queryInterface: QueryInterface): Promise<void> {
|
|
await queryInterface.dropTable('DeleteCertificateAttempts');
|
|
await queryInterface.dropTable('InstallCertificateAttempts');
|
|
}
|