This commit is contained in:
efrilm
2025-09-18 03:36:05 +07:00
parent 4640d14cb7
commit e82173c6e2
6 changed files with 904 additions and 416 deletions
+59 -9
View File
@@ -1,13 +1,63 @@
export type CampaignType = 'REWARD' | 'POINTS' | 'TOKENS' | 'MIXED'
export type RuleType = 'TIER' | 'SPEND' | 'PRODUCT' | 'CATEGORY' | 'DAY' | 'LOCATION'
export type RewardType = 'POINTS' | 'TOKENS' | 'REWARD'
export interface Campaign {
id: string
id: string // UUID
name: string
description?: string
minimumPurchase: number
rewardType: 'point' | 'voucher' | 'discount'
rewardValue: number
startDate: Date
endDate: Date
isActive: boolean
createdAt: Date
updatedAt: Date
type: CampaignType
start_date: string // ISO string
end_date: string // ISO string
is_active: boolean
show_on_app: boolean
position: number
metadata?: Record<string, any>
rules?: CampaignRule[]
created_at: string // ISO string
updated_at: string // ISO string
}
export interface CampaignRule {
id: string // UUID
campaign_id: string // UUID
rule_type: RuleType
condition_value?: string
reward_type: RewardType
reward_value?: number
reward_subtype?: string
reward_ref_id?: string // UUID
metadata?: Record<string, any>
created_at: string // ISO string
updated_at: string // ISO string
}
export interface CampaignRequest {
name: string
description?: string
type: CampaignType
start_date: string // ISO string
end_date: string // ISO string
is_active: boolean
show_on_app: boolean
position: number
metadata?: Record<string, any>
rules: CampaignRuleRequest[]
}
export interface CampaignRuleRequest {
rule_type: RuleType
condition_value?: string
reward_type: RewardType
reward_value?: number
reward_subtype?: string
}
export interface Campaigns {
campaigns: Campaign[]
total: number
page: number
limit: number
}