65 lines
1.4 KiB
Plaintext
65 lines
1.4 KiB
Plaintext
module default {
|
|
type User {
|
|
required email: str;
|
|
required name: str;
|
|
required setting: Setting;
|
|
}
|
|
|
|
type Key {
|
|
required name: str;
|
|
required company: str;
|
|
required key: str;
|
|
required date: datetime {
|
|
default := datetime_current();
|
|
}
|
|
}
|
|
|
|
type Setting {
|
|
default_model: str;
|
|
multi keys: Key;
|
|
}
|
|
|
|
type Conversation {
|
|
required name: str;
|
|
required user: User {
|
|
on target delete delete source;
|
|
};
|
|
required date: datetime {
|
|
default := datetime_current();
|
|
}
|
|
}
|
|
|
|
type Area {
|
|
required position: int64;
|
|
required conversation: Conversation {
|
|
on target delete delete source;
|
|
};
|
|
}
|
|
|
|
type Message {
|
|
model_id: str;
|
|
selected: bool;
|
|
required role: str;
|
|
required content: str;
|
|
required area: Area {
|
|
on target delete delete source;
|
|
};
|
|
required conversation: Conversation;
|
|
required date: datetime {
|
|
default := datetime_current();
|
|
}
|
|
}
|
|
|
|
type Usage {
|
|
required model_id: str;
|
|
required user: User;
|
|
input_cost: float32;
|
|
output_cost: float32;
|
|
input_token: int32;
|
|
output_token: int32;
|
|
required date: datetime {
|
|
default := datetime_current();
|
|
}
|
|
}
|
|
}
|