package wire

// RecycleBinItem is the Salesforce-compatible deleted-record projection.
// Both identity aliases are intentional product wire facts; the neutral
// Runtime contract carries the record identity only once.
type RecycleBinItem struct {
	ID               string `json:"Id"`
	RecordID         string `json:"RecordId"`
	RecordName       string `json:"RecordName"`
	ObjectAPIName    string `json:"ObjectApiName"`
	DeletedBy        string `json:"DeletedBy"`
	DeletedDate      string `json:"DeletedDate"`
	CreatedDate      string `json:"CreatedDate"`
	LastModifiedDate string `json:"LastModifiedDate"`
}

type RecycleBinFailure struct {
	ObjectAPIName string `json:"objectApiName"`
	ErrorCode     string `json:"errorCode"`
	Message       string `json:"message"`
}

type RecycleBinListResponse struct {
	Items          []RecycleBinItem    `json:"items"`
	TotalSize      int                 `json:"totalSize"`
	PartialFailure bool                `json:"partialFailure"`
	FailedObjects  []RecycleBinFailure `json:"failedObjects"`
}
