save progress

This commit is contained in:
2022-04-17 02:01:31 +02:00
parent 2319347f03
commit f8e2210cc0
12 changed files with 259 additions and 184 deletions

View File

@ -17,15 +17,13 @@ export class RepoId extends Identifier<string> {
export default class Repo extends Aggregate<RepoId>{
private readonly _id?: RepoId;
private readonly _name: string;
private _name = "";
private readonly _userAssignment: UserAssignment[] = [];
public constructor (id: RepoId| undefined, name: string, userAssignment: UserAssignment[]) {
public constructor (id: RepoId| undefined) {
super();
this._id = id;
this._name = name;
this._userAssignment = userAssignment;
}
public get id (): RepoId | undefined {
@ -36,6 +34,10 @@ export default class Repo extends Aggregate<RepoId>{
return this._name;
}
public set name (name: string) {
this._name = name;
}
public get path (): string {
return "/" + this._name;
}
@ -44,19 +46,18 @@ export default class Repo extends Aggregate<RepoId>{
return this._userAssignment;
}
public addUserAssignment (userAssignment: UserAssignment): void {
this._userAssignment.push(userAssignment);
}
public removeUserAssignment (userAssignment: UserAssignment): void {
this._userAssignment.filter(item => item !== userAssignment);
}
// public static builder (): IBuilder<Repo> {
// return <IBuilder<Repo>> <unknown>Builder(Repo);
// }
// public static builder (): IBuilder<Repo> {
// return (<unknown> Builder(Repo)) as IBuilder<Repo>;
// }
}
export type RepoBuilder = {
[k in keyof Repo]-?: (arg: Repo[k]) => RepoBuilder
}
& {
build(): Repo;
};
export class RepoIdGenerator implements IdentifierGenerator<RepoId> {
public generate (): RepoId {
return new RepoId(randomUUID());