-
Notifications
You must be signed in to change notification settings - Fork 115
Open
Labels
Description
🎯 Objective
Develop a comprehensive TypeScript service layer for the Limited Time Drop Contract that manages time-sensitive product drops, access control, and exclusive offers within the StarShop marketplace.
🏗 Service Structure
src/shared/services/limited_time_drop/
limited_drop.service.ts // Main service class
types/
drop.types.ts // TypeScript interfaces
access.types.ts // Access control types
utils/
drop.utils.ts // Helper functions
constants/
drop.constants.ts // Contract addresses, error codes🗂 Requirements
1. Drop Management
createDrop(config)- Create new limited-time dropgetDrop(dropId)- Get drop detailsupdateDrop(dropId, updates)- Update drop configurationcancelDrop(dropId)- Cancel active drop
2. Access Control
checkAccess(dropId, user)- Check user access eligibilitygrantAccess(dropId, user)- Grant access to userrevokeAccess(dropId, user)- Revoke user accessgetAccessList(dropId)- Get users with access
3. Drop Operations
participateInDrop(dropId)- User participationtrackParticipation(dropId)- Track participation metricsgetDropStatus(dropId)- Get current drop status
4. Time Management
isDropActive(dropId)- Check if drop is currently activegetTimeRemaining(dropId)- Get remaining timeextendDrop(dropId, duration)- Extend drop duration