package bootstrap

import (
	contractschemacatalog "github.com/pingcap-inc/nexuscrm-contract/pkg/schemacatalog"
	seedrows "github.com/pingcap-inc/nexuscrm-contract/pkg/seedrows"
)

// StandardPermissionRow describes one row in the permission catalog payload.
// Rows become _System_Permission entries and, via DefaultGrantedTo, initial
// grants into each profile's backing PermissionSet. Custom permissions authored
// at runtime by admins go into _System_CustomPermission.
//
// Relocated verbatim to the contract module's seedrows package (Wave 0); this
// alias keeps existing importers compiling unchanged.
type StandardPermissionRow = seedrows.StandardPermissionRow

// LoadStandardPermissions parses the shipped permission catalog pack. Fails
// fast on empty/malformed — a platform boot with zero catalog entries
// would leave every row-driven reader with no permissions to describe, so
// refusing to proceed is safer than silently seeding nothing.
func LoadStandardPermissions() ([]StandardPermissionRow, error) {
	return contractschemacatalog.StandardPermissions()
}

// ParseStandardPermissions parses a permission catalog payload owned by either
// a platform pack or an app pack.
//
// Relocated verbatim to the contract module's seedrows package (Wave 0); this
// alias keeps existing importers compiling unchanged.
var ParseStandardPermissions = seedrows.ParseStandardPermissions
