export interface ManualFillData {
  walletId: string
  firstName: string
  lastName: string
  email: string
  phoneNumber: string
}

export interface ReceiverBeneficiary {
  id: string
  transferTo: string
  amount: string
  document: File | null
  documentSigned: 'yes' | 'no'
  documentName?: string
  manualFillData?: ManualFillData
  isExistingUser?: boolean
  existingUserData?: DummyUser
}

export interface ServiceProvider {
  id: string
  serviceProvider: string
  walletId: string
  firstName: string
  lastName: string
  email: string
  phoneNumber: string
  serviceName: string
  serviceProviderFees: string
  feesPaidBy: {
    sender: boolean
    receiver: boolean
  }
  receiverFeeDistribution: ReceiverFeeDistribution[]
  anyContractUploaded: 'yes' | 'no'
  contractFile?: File | null
  isExistingUser?: boolean
}

export interface ReceiverFeeDistribution {
  receiverId: string
  receiverName: string
  percentage: number
  amount: number
}

export interface Term {
  id: string
  selectTask: string
  taskAssignedTo: string
  taskToBeVerifiedBy: string
}

export interface TermsConditions {
  terms: Term[]
}

export interface MultiPartyEscrowData {
  receivers: ReceiverBeneficiary[]
  serviceProviders: ServiceProvider[]
  terms: TermsConditions
}

export interface DummyUser {
  walletId: string
  firstName: string
  lastName: string
  email: string
  phoneNumber: string
  exists: boolean
}