export interface ClubStats {
  totalMembers: number
  activeMembers: number
  distributionsToday: number
  gramsDistributedToday: number
  totalStockGrams: number
  monthlyQuotaUsagePercent: number
}

export interface Distribution {
  id: string
  memberId: string
  memberName: string
  strainName: string
  amountGrams: number
  recordedBy: string
  recordedAt: string // ISO 8601
}

export interface DistributionRecord {
  id: string
  memberId: string
  memberName: string
  batchId: string
  strainName: string
  amountGrams: number
  recordedBy: string
  recordedAt: string // ISO 8601
  status: "COMPLETED" // immutable
}

export interface QuotaStatus {
  dailyUsedGrams: number
  dailyLimitGrams: number // always 25
  monthlyUsedGrams: number
  monthlyLimitGrams: number // 50 for ≥21, 30 for <21
  isUnder21: boolean
}

export interface AvailableBatch {
  id: string
  strainName: string
  availableGrams: number
  thcPercent: number
  status: "AVAILABLE"
}

export interface BatchSummary {
  id: string
  strainName: string
  availableGrams: number
  status: "AVAILABLE" | "RECALLED" | "DEPLETED"
}

export interface Batch {
  id: string
  strainName: string
  thcPercent: number
  cbdPercent: number
  totalGrams: number
  availableGrams: number
  status: "AVAILABLE" | "RECALLED" | "DEPLETED"
  supplier: string
  harvestDate: string // ISO 8601
  receivedAt: string // ISO 8601
  notes?: string
}

export interface Strain {
  id: string
  name: string
  defaultThcPercent: number
  defaultCbdPercent: number
}

export interface Member {
  id: string
  firstName: string
  lastName: string
  email: string
  dateOfBirth: string // ISO 8601
  phone?: string
  memberNumber: string
  status: "ACTIVE" | "SUSPENDED" | "EXPELLED"
  joinedAt: string // ISO 8601
  monthlyQuotaUsedPercent: number
  notes?: string
}
