// SPDX-FileCopyrightText: 2025 Contributors to the CitrineOS Project
//
// SPDX-License-Identifier: Apache-2.0

export * from './repositories.js';

// Data endpoints query models
export { AuthorizationQuerySchema } from './queries/Authorization.js';
export type { AuthorizationQuerystring } from './queries/Authorization.js';
export { ChargingStationKeyQuerySchema } from './queries/ChargingStation.js';
export type { ChargingStationKeyQuerystring } from './queries/ChargingStation.js';
export { ConnectionDeleteQuerySchema } from './queries/Connection.js';
export type { ConnectionDeleteQuerystring } from './queries/Connection.js';
export { ModelKeyQuerystringSchema } from './queries/Model.js';
export type { ModelKeyQuerystring } from './queries/Model.js';
export {
  NetworkProfileDeleteQuerySchema,
  NetworkProfileQuerySchema,
} from './queries/NetworkProfile.js';
export type {
  NetworkProfileDeleteQuerystring,
  NetworkProfileQuerystring,
} from './queries/NetworkProfile.js';
export {
  GenerateCertificateChainSchema,
  InstallRootCertificateSchema,
  RegenerateInstalledCertificateSchema,
  UploadExistingCertificateSchema,
} from './queries/RootCertificate.js';
export { CreateSubscriptionSchema } from './queries/Subscription.js';
export { TariffQuerySchema } from './queries/Tariff.js';
export type { TariffQueryString } from './queries/Tariff.js';
export { CreateTenantQuerySchema, TenantQuerySchema } from './queries/Tenant.js';
export type { TenantQueryString } from './queries/Tenant.js';
export { TlsReloadQuerySchema } from './queries/TlsReload.js';
export type { TlsReloadQueryString } from './queries/TlsReload.js';
export { TransactionEventQuerySchema } from './queries/TransactionEvent.js';
export type { TransactionEventQuerystring } from './queries/TransactionEvent.js';
export { UpdateChargingStationPasswordQuerySchema } from './queries/UpdateChargingStationPasswordQuery.js';
export type { UpdateChargingStationPasswordQueryString } from './queries/UpdateChargingStationPasswordQuery.js';
export {
  CreateOrUpdateVariableAttributeQuerySchema,
  VariableAttributeQuerySchema,
} from './queries/VariableAttribute.js';
export type {
  CreateOrUpdateVariableAttributeQuerystring,
  VariableAttributeQuerystring,
} from './queries/VariableAttribute.js';
export {
  WebsocketDeleteQuerySchema,
  WebsocketGetQuerySchema,
  WebsocketMappingQuerySchema,
  WebsocketRequestSchema,
} from './queries/Websocket.js';
export type {
  WebsocketDeleteQuerystring,
  WebsocketGetQuerystring,
  WebsocketMappingQuerystring,
} from './queries/Websocket.js';

// Data projection models
export type { AuthorizationRestrictions } from './projections/AuthorizationRestrictions.js';
export { default as AuthorizationRestrictionsSchema } from './projections/schemas/AuthorizationRestrictionsSchema.json' with { type: 'json' };
export { default as TariffSchema } from './projections/schemas/TariffSchema.json' with { type: 'json' };

// Date endpoints DTOs
export { GenerateCertificateChainRequest } from './dtos/GenerateCertificateChainRequest.js';
export { InstallRootCertificateRequest } from './dtos/InstallRootCertificateRequest.js';
export { RegenerateExistingCertificate } from './dtos/RegenerateExistingCertificate.js';
export { UploadExistingCertificate } from './dtos/UploadExistingCertificate.js';
