////
Search

BoostUp [Updated 12.15]

태그
히스토리
설명
부스트 강화 내역
Related to 강화 API (Response)
강화 API (Request)에 관계됨
소스
export enum BoostUpResultType { WIN = 'win', MISS = 'miss', JACKPOT = 'jackpot', } export enum BoostUpMomentType { BEFORE_BUY_BOOST = 'before_buy_boost', AFTER_BUY_BOOST = 'after_buy_boost', MANUAL_USE_BOOST = 'manual_use_boost', } export enum BoostUpStatus { ENABLED = 'enabled', DISABLED = 'disabled', }
TypeScript
복사
import { Column, CreateDateColumn, Entity, JoinColumn, ManyToOne, PrimaryGeneratedColumn, RelationId, UpdateDateColumn, } from 'typeorm'; import UserEntity from '../../UserEntity'; import { BoostUpMomentType, BoostUpResultType, BoostUpStatus } from '@chai/chai-commons'; import BoostEntity from '../../BoostEntity'; import BoostCampaignEntity from './BoostCampaignEntity'; import BoostUpPolicyEntity from './BoostUpPolicyEntity'; @Entity('boost_up') export default class BoostUpEntity { @PrimaryGeneratedColumn() id: number; @Column({ type: 'varchar', enum: BoostUpResultType, comment: '강화 결과' }) resultType: BoostUpResultType; @Column({ comment: '강화 성공 레벨' }) level: number; @Column({ type: 'varchar', enum: BoostUpMomentType, comment: '강화 적용 위치' }) boostUpMoment: BoostUpMomentType; @Column({ comment: '강화에 소모한 번개' }) boltPrice: number; @Column({ comment: '추가로 얻은 캐시백' }) cashbackAmount: number; @Column({ comment: '추가로 얻은 할인율' }) discountRate: number; @Column({ type: 'varchar', enum: BoostUpStatus }) status: BoostUpStatus; @Column() @RelationId((entity: BoostUpEntity) => entity.boostCampaign) boostCampaignId: number; @ManyToOne(() => BoostCampaignEntity, { createForeignKeyConstraints: false }) @JoinColumn({ name: 'boost_campaign_id' }) boostCampaign: BoostCampaignEntity; @Column({ comment: 'boost.id', nullable: true }) @RelationId((entity: BoostUpEntity) => entity.boost) boostId: number; @ManyToOne(() => BoostEntity, { createForeignKeyConstraints: false }) @JoinColumn({ name: 'boost_id' }) boost: BoostEntity; @Column() @RelationId((entity: BoostUpEntity) => entity.user) userId: string; @ManyToOne(() => UserEntity, { createForeignKeyConstraints: false }) @JoinColumn({ name: 'user_id' }) user: UserEntity; @Column() @RelationId((entity: BoostUpEntity) => entity.boostUpPolicy) boostUpPolicyId: number; @ManyToOne(() => BoostUpPolicyEntity, { createForeignKeyConstraints: false }) @JoinColumn({ name: 'boost_up_policy_id' }) boostUpPolicy: BoostUpPolicyEntity; @CreateDateColumn() createdAt: Date; @UpdateDateColumn() updatedAt: Date; }
TypeScript
복사
엔티티 정의
유저의 부스트 강화 내역
유저가 부스트 강화를 할 때마다 DB의 BoostUp 테이블에 row가 생긴다.
필드
resultType: 강화 결과
win, miss, jackpot 중 하나
level: 강화 성공 레벨
몇단계 win인지를 나타냄
miss, jackpot은 기본값 1이 설정된다.
boostUpMoment: 유저가 해당 강화를 시도한 시점
구매전, 구매후, 후적용 중 하나
boltPrice: 유저가 해당 강화에 소모한 번개 개수
cashbackAmount: 유저가 해당 강화를 통해 받은 추가 캐시백 금액
discountRate: 유저가 해당 강화를 통해 받은 추가 할인율
status: 강화 상태
enabled: 결제에 사용할 수 있는 상태
disabled: 결제에 사용할 수 없는 상태
boostCampaignId, boostCampaign: 해당 강화에 묶인 캠페인
boostId, boost: 해당 강화에 묶인 부스트
부스트 구매전 강화의 경우 이 값의 필드가 없다(null이다). 따라서 부스트 구매하고 이 값을 update 쳐야 한다.
userId, user: 해당 강화에 묶인 유저
boostUpPolicyId, boostUpPolicy: 해당 강화에 묶인 강화 정책
createdAt: 유저가 강화를 시도한 Date
updatedAt: 강화 Row가 업데이트된 Date