export type ManagedModelType = 'image' | 'video' | 'text';

export interface ManagedApiProvider {
  id: string;
  name: string;
  defaultApiUrl: string;
  defaultModel: string;
  type: ManagedModelType;
  website: string | null;
  isActive: boolean;
  sortOrder: number;
}

export interface ManagedModelRecommendation {
  id: string;
  modelName: string;
  displayName: string;
  type: ManagedModelType;
  providerId: string | null;
  isActive: boolean;
  sortOrder: number;
}

export interface ManagedModelConfigResponse {
  providers: ManagedApiProvider[];
  recommendations: ManagedModelRecommendation[];
  systemApis?: ManagedSystemApi[];
}

export interface ManagedSystemApi {
  id: string;
  provider: string;
  name: string;
  apiUrl: string;
  modelName: string;
  modelGroup: string;
  note: string;
  apiKey: '';
  apiKeyPreview: string;
  type: ManagedModelType;
  creditsPerUse: number;
  billingMode: 'fixed' | 'ratio' | 'token';
  fixedPrice: number;
  inputPricePer1K: number;
  outputPricePer1K: number;
  modelRatio: number;
  completionRatio: number;
  groupRatio: number;
  priceNote: string;
  isActive: boolean;
  sortOrder: number;
}
