import { BaseModel } from '#database/base_model' import { FirmwareEntry } from '../domain/firmware/firmware_catalog.js' export default class FirmwareEntryModel extends BaseModel { static collectionName = 'firmware_entries' static async findByIdentifier(identifier: string): Promise { return this.findOne({ identifier }) as Promise } static async findByProductClass(productClass: string): Promise { const collection = this.getCollection() return collection.find({ productClass }).toArray() as unknown as Promise } static async findByProductClassAndVersion( productClass: string, version: string ): Promise { return this.findOne({ productClass, version }) as Promise } static async createIfNotExists(data: Partial): Promise { const existing = await this.findOne({ identifier: data.identifier }) if (existing) { throw new Error(`Firmware entry with identifier '${data.identifier}' already exists`) } return this.create(data) as Promise } static async deleteByIdentifier(identifier: string): Promise { return this.deleteOne({ identifier }) } }