export interface SeatClass {
  id: string;
  name: string;
  coachTypeId?: string;
  nationalityType?: string;
  bedPosition?: string | null;
  baseFareMinor?: number;
  insuranceFeeMinor?: number;
  isActive?: boolean;
}

export interface CoachType {
  id: string;
  code: string;
  name: string;
}

export interface Route {
  id: string;
  name: string;
  code?: string;
}

export interface SegmentFareRule {
  id: string;
  routeId: string;
  originStopSequence: number;
  destinationStopSequence: number;
  seatClassId: string;
  baseFareMinor: number;
  nationality?: string | null;
  currency: string;
  validFrom: string;
  validUntil?: string | null;
  createdAt: string;
  seatClass?: SeatClass;
  route?: Route;
}

export interface RouteFareRule {
  id: string;
  routeId: string;
  seatClassId: string;
  passengerCategory: string;
  baseFareMinor: number;
  surchargeMinor?: number | null;
  validFrom: string;
  validUntil?: string | null;
  createdAt: string;
  seatClass?: SeatClass;
  route?: Route;
}

export interface BaggageAllowance {
  id: string;
  seatClassId: string;
  maxWeightKg: number;
  maxPiecesCount: number;
  excessFeePerKg: number;
  seatClass?: SeatClass;
}

export type TabType = 'tariff' | 'overrides' | 'segment-overrides' | 'baggage';
