•
소스
export enum BoostUpMomentType {
BEFORE_BUY_BOOST = 'before_buy_boost', // 부스트 구매 전
AFTER_BUY_BOOST = 'after_buy_boost', // 부스트 구매 후
MANUAL_USE_BOOST = 'manual_use_boost', // 부스트 후적용
}
export enum BoostUpPolicyStatus {
ENABLED = 'enabled',
DISABLED = 'disabled',
}
TypeScript
복사
import { Column, CreateDateColumn, Entity, OneToMany, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm';
import { BoostUpMomentType, BoostUpPolicyStatus } from '@chai/chai-commons';
import { bigIntTransformer } from '../../lib/bigIntTransformer';
import BoostUpSchemePolicyEntity from './BoostUpSchemePolicyEntity';
@Entity('boost_up_policy')
export default class BoostUpPolicyEntity {
@PrimaryGeneratedColumn()
id: number;
@Column({
type: 'jsonb',
comment: '강화 적용 가능 시점',
default: [
BoostUpMomentType.BEFORE_BUY_BOOST,
BoostUpMomentType.AFTER_BUY_BOOST,
BoostUpMomentType.MANUAL_USE_BOOST,
],
})
possibleMoments: BoostUpMomentType[];
@Column({ type: 'varchar', comment: '강화 정책 제목', default: '' })
title: string;
@Column({ type: 'varchar', comment: '강화 정책 유의사항', default: '' })
description: string;
@Column({ type: 'bigint', comment: '강화 예산', transformer: [bigIntTransformer], default: 0 })
budget: number;
@Column({ type: 'timestamp', comment: '강화 가능 시작 시각' })
startAt: Date;
@Column({ type: 'timestamp', comment: '강화 가능 종료 시각' })
endAt: Date;
@Column({ type: 'varchar', comment: '강화 정책 상태', default: BoostUpPolicyStatus.DISABLED })
status: BoostUpPolicyStatus;
@Column({ comment: '강화 비용', default: 1 })
boltPrice: number;
@OneToMany(() => BoostUpSchemePolicyEntity, boostUpSchemePolicy => boostUpSchemePolicy.boostUpPolicy)
boostUpSchemePolicies: BoostUpSchemePolicyEntity[];
@CreateDateColumn()
createdAt: Date;
@UpdateDateColumn()
updatedAt: Date;
}
TypeScript
복사
엔티티 정의
•
부스트 강화 정책
필드
•
possibleMoments: 강화 적용이 가능한 시점들
◦
강화는 부스트 구매 전, 부스트 구매 후, 후적용 3가지 시점에서 적용 가능하다.
•
title: 강화 정책 제목
◦
어드민 사용자의 편의를 위해 존재한다. 차이크루들에게는 보이지 않는 값이다.
•
description: 강화 정책 유의사항
강화 유의사항 참고
◦
유의사항은 차이크루들에게 보인다.
•
budget: 강화 예산
•
startAt, endAt: 강화 가능 시간
◦
startAt부터 endAt까지가 강화 가능 시간대.
•
status: 강화 정책 상태
◦
'강화 정책 상태'란, 강화 정책이 켜져 있는지, 꺼져 있는지를 나타낸다.
◦
주의!!
▪
강화 정책 상태가 enabled로 되어 있다고 무조건 강화가 가능한 것은 아니다.
▪
아래의 '강화 가능 여부 체크하기'의 조건들을 모두 만족해야만 강화가 가능하다.
강화 가능 여부 체크하기
•
boltPrice: 강화 한 번 하는데 소모되는 번개 수
•
boostUpSchemePolicies: 해당 정책에 묶인 스킴 정책들
•
createdAt: 해당 정책이 생성된 Date
•
updatedAt: 해당 정책이 업뎃된 Date