package services

import lp "mgit.msbls.de/m/paliad/pkg/litigationplanner"

// proceeding_mapping bridges the two proceeding-type vocabularies in
// the codebase. The canonical implementations now live in
// pkg/litigationplanner — this file keeps the existing service-level
// names alive as re-exports so the rest of internal/services + tests
// compile without an import-rewrite.
//
// See pkg/litigationplanner/proceeding_mapping.go for the logic +
// docs/design-determinator-row-cascade-2026-05-13.md §4.2 for the
// design rationale.

// Stable code constants — re-exported from the package so existing
// services / handlers can keep using the bare names.
const (
	CodeUPCInfringement     = lp.CodeUPCInfringement
	CodeUPCRevocation       = lp.CodeUPCRevocation
	CodeUPCCounterclaim     = lp.CodeUPCCounterclaim
	CodeUPCPreliminary      = lp.CodeUPCPreliminary
	CodeUPCDamages          = lp.CodeUPCDamages
	CodeUPCDiscovery        = lp.CodeUPCDiscovery
	CodeUPCAppealMerits     = lp.CodeUPCAppealMerits
	CodeUPCAppealOrder      = lp.CodeUPCAppealOrder
	CodeUPCAppealCost       = lp.CodeUPCAppealCost
	CodeDEInfringementLG    = lp.CodeDEInfringementLG
	CodeDEInfringementOLG   = lp.CodeDEInfringementOLG
	CodeDEInfringementBGH   = lp.CodeDEInfringementBGH
	CodeDENullityBPatG      = lp.CodeDENullityBPatG
	CodeDENullityBGH        = lp.CodeDENullityBGH
	CodeEPAGrant            = lp.CodeEPAGrant
	CodeEPAOpposition       = lp.CodeEPAOpposition
	CodeEPAOppositionAppeal = lp.CodeEPAOppositionAppeal
	CodeDPMAOpposition      = lp.CodeDPMAOpposition
	CodeDPMAAppealBPatG     = lp.CodeDPMAAppealBPatG
	CodeDPMAAppealBGH       = lp.CodeDPMAAppealBGH
)

// MapLitigationToFristenrechner returns the fristenrechner code +
// condition flags implied by a (litigationCode, jurisdiction) pair.
// Delegates to litigationplanner.MapLitigationToFristenrechner.
func MapLitigationToFristenrechner(litigationCode, jurisdiction string) (fristenrechnerCode string, conditionFlags []string, ok bool) {
	return lp.MapLitigationToFristenrechner(litigationCode, jurisdiction)
}

// ResolveCounterclaimRouting handles the determinator's upc.ccr.cfi
// illustrative-peer route. Delegates to
// litigationplanner.ResolveCounterclaimRouting.
func ResolveCounterclaimRouting(code string) (effectiveCode string, defaultFlags []string, routed bool) {
	return lp.ResolveCounterclaimRouting(code)
}

// SubTrackRoutings exposes the sub-track routing registry. SubTrackRouting
// is aliased in fristenrechner.go.
var SubTrackRoutings = lp.SubTrackRoutings

// LookupSubTrackRouting returns the sub-track routing for a proceeding
// code, or (zero, false) if the code is not a sub-track. Delegates to
// litigationplanner.LookupSubTrackRouting.
func LookupSubTrackRouting(code string) (SubTrackRouting, bool) {
	return lp.LookupSubTrackRouting(code)
}
