Problem
contracts/asset-maintenance/src/lib.rs defines ProviderProfile but has no reputation or rating mechanism. There is no way to track provider performance across maintenance jobs on-chain.
Proposed Solution
Create contracts/opsce/src/provider_rating.rs. Implement a 1-5 star rating system where asset owners can rate a provider after a maintenance record is marked complete.
Acceptance Criteria
Problem
contracts/asset-maintenance/src/lib.rsdefinesProviderProfilebut has no reputation or rating mechanism. There is no way to track provider performance across maintenance jobs on-chain.Proposed Solution
Create
contracts/opsce/src/provider_rating.rs. Implement a 1-5 star rating system where asset owners can rate a provider after a maintenance record is marked complete.Acceptance Criteria
rate_provider(env, record_id, rating, comment)— caller must be the asset owner; rating must be 1-5ProviderProfileErr(ContractError::AlreadyRated)on duplicateget_provider_rating(env, provider_address)returns{ average_rating, total_reviews }provider_ratedevent with rating value and record ID