24 lines
545 B
TypeScript
24 lines
545 B
TypeScript
export class Game {
|
|
readonly id: string;
|
|
readonly name: string;
|
|
|
|
private constructor(props: { id: string; name: string }) {
|
|
this.id = props.id;
|
|
this.name = props.name;
|
|
}
|
|
|
|
static create(props: { id: string; name: string }): Game {
|
|
if (!props.id || props.id.trim().length === 0) {
|
|
throw new Error('Game ID is required');
|
|
}
|
|
|
|
if (!props.name || props.name.trim().length === 0) {
|
|
throw new Error('Game name is required');
|
|
}
|
|
|
|
return new Game({
|
|
id: props.id,
|
|
name: props.name,
|
|
});
|
|
}
|
|
} |