Files
cariflex/tools/citrineos-core-main/apps/Server/migrations/20260213120000-create-certificate-attempt-tables.ts
Eric F d398a6ced2 Add extracted tools: CitrineOS, OpenOCPP, ShapeShifter
- 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
2026-06-08 00:38:27 -04:00

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');
}