<commit_before>
export interface Profile {
  Id: string
  FirstName: string
  Tagline: string
}

export enum FriendStatus {
  ONLINE,
  OFFLINE,
  SEARCHING,
  IN_GROUP,
  // JOINABLE,
}

export type Friend = {
  Id: string
  // TODO: FriendData may include contact link maybe for SMS,
  // or, it may not be needed at all.
  // Data: FriendData
  Profile: Profile
  Status: FriendStatus
}

// Single availability configuration from, to, times
export type Availability = {
  Id: string
  Start: Date
  End: Date
}

// One user's vehicle for searching in
export type Pea = {
  Id: string
  Availability: Availability[]
  Profile: Profile
}

// As multiple users group together, we form Pods
// of multiple Peas.
export type Pod = {
  Id: string
  Peas: Pea[]
}

export enum PodMatchStatus {
  ACCEPTED,
  NOT_RESPONDED,
  REJECTED,
}

export type PodMatch = {
  Id: string
  Pod: Pod
  Status: PodMatchStatus
}

export type PodInvitation = {
  Id: string
  From: Pea
  Pod: Pod
  To: Friend
}

export enum GroupLockStatus {
  LOCKED,
  UNLOCKED,
}

// This is the final group which you are in to go to the event with,
// It is not formed until all pods have accepted each other and are
// paired together.
export type Group = {
  Id: string
  Name: string
  FormedAt: Date
  MeetingAt: Date<commit_msg>Note on reason Group is in shared models<commit_after>
export interface Profile {
  Id: string
  FirstName: string
  Tagline: string
}

export enum FriendStatus {
  ONLINE,
  OFFLINE,
  SEARCHING,
  IN_GROUP,
  // JOINABLE,
}

export type Friend = {
  Id: string
  // TODO: FriendData may include contact link maybe for SMS,
  // or, it may not be needed at all.
  // Data: FriendData
  Profile: Profile
  Status: FriendStatus
}

// Single availability configuration from, to, times
export type Availability = {
  Id: string
  Start: Date
  End: Date
}

// One user's vehicle for searching in
export type Pea = {
  Id: string
  Availability: Availability[]
  Profile: Profile
}

// As multiple users group together, we form Pods
// of multiple Peas.
export type Pod = {
  Id: string
  Peas: Pea[]
}

export enum PodMatchStatus {
  ACCEPTED,
  NOT_RESPONDED,
  REJECTED,
}

export type PodMatch = {
  Id: string
  Pod: Pod
  Status: PodMatchStatus
}

export type PodInvitation = {
  Id: string
  From: Pea
  Pod: Pod
  To: Friend
}

export enum GroupLockStatus {
  LOCKED,
  UNLOCKED,
}

// The reason Group is a shared model,
// as opposed to only being in Lobby is because
// the Group model will be used in the history screen as well!

// This is the final group which you are in to go to the event with,
// It is not formed until all pods have accepted each other and are
// paired together.
export type Group = {
  Id: string
  Name: string
  FormedAt: Date
  MeetingAt: Date
{'fraction_non_alphanumeric': 0.0776978417266187, 'fraction_numerical': 0.0, 'mean_word_length': 3.113905325443787, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3195768', 'n_tokens_mistral': 900, 'n_tokens_neox': 887, 'n_words': 366}