import {
  AppVersion,
  CreateVersionInput,
  UpdateVersionInput,
  UploadVersionInput,
  VersionListFilter,
  ParsedPackageInfo,
  Platform,
} from '../entities/version'

export interface IVersionRepository {
  list(filter?: VersionListFilter): Promise<AppVersion[]>
  getById(id: string): Promise<AppVersion>
  create(input: CreateVersionInput): Promise<AppVersion>
  update(id: string, input: UpdateVersionInput): Promise<AppVersion>
  delete(id: string): Promise<void>
  toggle(id: string, isEnabled: boolean): Promise<void>
  upload(input: UploadVersionInput): Promise<AppVersion>
  parsePackage(file: File, platform: Platform): Promise<ParsedPackageInfo>
}
