feat: restructure into XFlow monorepo with Nuxt 4, Modular Onion Monolith, Android client, and Desktop CLI

This commit is contained in:
XFlow Deploy
2026-09-28 08:57:32 +05:00
parent edcd30c829
commit 0837b3f612
204 changed files with 24616 additions and 39 deletions
@@ -0,0 +1,30 @@
import { IUseCase } from '../../core/application/IUseCase';
import { Result } from '../../core/domain/Result';
import { DomainError, NotFoundError, ValidationError } from '../../core/domain/DomainError';
import { IListRepository } from '../domain/IListRepository';
import { ListItem } from '../domain/ListItem';
import { ToggleListItemDto } from './dtos/ListDtos';
export class ToggleListItemUseCase implements IUseCase<ToggleListItemDto, ListItem> {
constructor(private readonly listRepository: IListRepository) {}
public async execute(dto: ToggleListItemDto): Promise<Result<ListItem, DomainError>> {
if (!dto.itemId) {
return Result.fail(new ValidationError('Item ID is required'));
}
const item = await this.listRepository.findItemById(dto.itemId);
if (!item) {
return Result.fail(new NotFoundError(`Item with ID ${dto.itemId} not found`));
}
if (dto.status) {
item.updateStatus(dto.status);
} else {
item.toggleCompleted();
}
await this.listRepository.saveItem(item);
return Result.ok(item);
}
}