content: package emu.grasscutter.game.gacha;
  
  import dev.morphia.annotations.Entity;
  
  @Entity
  public class PlayerGachaInfo {
      private PlayerGachaBannerInfo standardBanner;
      private PlayerGachaBannerInfo beginnerBanner;
      private PlayerGachaBannerInfo eventCharacterBanner;
      private PlayerGachaBannerInfo eventWeaponBanner;
  
      public PlayerGachaInfo() {
          this.standardBanner = new PlayerGachaBannerInfo();
          this.eventCharacterBanner = new PlayerGachaBannerInfo();
          this.eventWeaponBanner = new PlayerGachaBannerInfo();
      }
  
      public PlayerGachaBannerInfo getStandardBanner() {
          if (this.standardBanner == null) this.standardBanner = new PlayerGachaBannerInfo();
          return this.standardBanner;
      }
  
      public PlayerGachaBannerInfo getBeginnerBanner() {
          if (this.beginnerBanner == null) this.beginnerBanner = new PlayerGachaBannerInfo();
          return this.beginnerBanner;
      }
  
      public PlayerGachaBannerInfo getEventCharacterBanner() {
          if (this.eventCharacterBanner == null) this.eventCharacterBanner = new PlayerGachaBannerInfo();
          return this.eventCharacterBanner;
      }
  
      public PlayerGachaBannerInfo getEventWeaponBanner() {
          if (this.eventWeaponBanner == null) this.eventWeaponBanner = new PlayerGachaBannerInfo();
          return this.eventWeaponBanner;
      }
  
      public PlayerGachaBannerInfo getBannerInfo(GachaBanner banner) {
          return switch (banner.getBannerType()) {
              case STANDARD -> this.getStandardBanner();
              case BEGINNER -> this.getBeginnerBanner();
              case EVENT, CHARACTER, CHARACTER2 -> this.getEventCharacterBanner();
              case WEAPON -> this.getEventWeaponBanner();
          };
      }
  }
  