export interface DeviceProfileProps {
  installId: string;
  userId: string | null;
  deviceBrand: string | null;
  deviceModel: string | null;
  deviceOs: string | null;
  appVersion: string | null;
  locale: string | null;
  eventCount: number;
}

export class DeviceProfile {
  readonly installId: string;
  readonly userId: string | null;
  readonly deviceBrand: string | null;
  readonly deviceModel: string | null;
  readonly deviceOs: string | null;
  readonly appVersion: string | null;
  readonly locale: string | null;
  readonly eventCount: number;

  private constructor(props: DeviceProfileProps) {
    this.installId = props.installId;
    this.userId = props.userId;
    this.deviceBrand = props.deviceBrand;
    this.deviceModel = props.deviceModel;
    this.deviceOs = props.deviceOs;
    this.appVersion = props.appVersion;
    this.locale = props.locale;
    this.eventCount = props.eventCount;
  }

  static create(props: DeviceProfileProps): DeviceProfile {
    return new DeviceProfile(props);
  }
}
