export interface MatterListItem {
  matter_id: string
  name: string
  description: string
  matter_type: string
  status: string
  sample_doc_ids: string[]
}

export interface ConditionItem {
  condition_id?: string
  name: string
  description: string
  condition_type: string
  structured_value: string
  operator: string
}

export interface MaterialItem {
  material_id?: string
  name: string
  normalized_name: string
  description: string
  material_type: string
  is_required?: boolean
  format_requirement: string
}

export interface TimeLimitItem {
  time_limit_id?: string
  name: string
  duration: string
  unit: string
  context: string
  time_type: string
}

export interface TargetGroupItem {
  target_group_id?: string
  name: string
  normalized_name: string
  group_type: string
  description: string
}

export interface OrganizationRef {
  name: string
  short_name: string
  org_type: string
}

export interface RegionRef {
  name: string
  full_name: string
}

export interface GoverningDocItem {
  doc_id: string
  title: string
  doc_code: string
  publish_date: string
  status: string
}

export interface MatterCardResponse {
  matter_id: string
  name: string
  description: string
  matter_type: string
  status: string
  conditions: ConditionItem[]
  materials: MaterialItem[]
  time_limits: TimeLimitItem[]
  target_groups: TargetGroupItem[]
  handled_by: OrganizationRef[]
  governing_docs: GoverningDocItem[]
  regions: RegionRef[]
}

export interface MatterRequirementsResponse {
  matter_id: string
  name: string
  conditions: ConditionItem[]
  materials: MaterialItem[]
  time_limits: TimeLimitItem[]
}