package com.huangzj.server.config;

import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * 和业务 demo 相关的配置，都挂在 app.* 下面，省得满天找字符串。
 */
@Getter
@ConfigurationProperties(prefix = "app")
public class AppProperties {

    /** Mongo 集合名等。 */
    private final Mongo mongo = new Mongo();
    /** 定时刷盘间隔。 */
    private final Save save = new Save();
    /** 假玩家、模块 tick 间隔。 */
    private final Module module = new Module();

    @Getter
    @Setter
    public static class Mongo {
        /** demo 文档往哪个 collection 塞。 */
        private String collection;
    }

    @Getter
    @Setter
    public static class Save {
        /** 多久触发一次批量/延迟保存（看 DemoMongoService 怎么用）。 */
        private long intervalMs;
    }

    @Getter
    @Setter
    public static class Module {
        /** 宿主 Bean 里的 playerId。 */
        private long playerId;
        /** 调度器多久叫醒一次模块 tick。 */
        private long tickIntervalMs;
    }
}
