web-app/docs/.obsidian/workspace.json
padreug 093846b351 Migrate PaymentMonitorService to dependency injection pattern
- Convert PaymentMonitorService to extend BaseService with proper metadata
- Add invoiceService property to BaseService for payment status checking
- Register PaymentMonitorService in market module with DI container
- Update market store to use injected service instead of singleton import
- Remove exported singleton instance from service file
- Add proper service initialization and cleanup in market module

This completes the third legacy service migration, following InvoiceService
and NostrmarketService. The service now properly integrates with the DI
architecture for better testing, lifecycle management, and loose coupling.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-07 01:42:41 +02:00

176 lines
No EOL
4.6 KiB
JSON

{
"main": {
"id": "ff312565b85205f5",
"type": "split",
"children": [
{
"id": "22824a70121de2e3",
"type": "tabs",
"children": [
{
"id": "fe085d296b05d361",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "04-migrations/dependency-injection-migration.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "dependency-injection-migration"
}
}
]
}
],
"direction": "vertical"
},
"left": {
"id": "473f9c90dc0ac250",
"type": "split",
"children": [
{
"id": "ee303aa846d48de1",
"type": "tabs",
"children": [
{
"id": "b3b6e397fb343c96",
"type": "leaf",
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical",
"autoReveal": false
},
"icon": "lucide-folder-closed",
"title": "Files"
}
},
{
"id": "57989530481d5df7",
"type": "leaf",
"state": {
"type": "search",
"state": {
"query": "",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical"
},
"icon": "lucide-search",
"title": "Search"
}
},
{
"id": "77b47c3e2e5e4005",
"type": "leaf",
"state": {
"type": "bookmarks",
"state": {},
"icon": "lucide-bookmark",
"title": "Bookmarks"
}
}
]
}
],
"direction": "horizontal",
"width": 300
},
"right": {
"id": "5468ccf17d8ecb0f",
"type": "split",
"children": [
{
"id": "6a62aec4067b5e7c",
"type": "tabs",
"children": [
{
"id": "37a0910880ab8e26",
"type": "leaf",
"state": {
"type": "backlink",
"state": {
"file": "01-architecture/index.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
"showSearch": false,
"searchQuery": "",
"backlinkCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-coming-in",
"title": "Backlinks for index"
}
},
{
"id": "4520ebffbf27e768",
"type": "leaf",
"state": {
"type": "outgoing-link",
"state": {
"file": "01-architecture/index.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-going-out",
"title": "Outgoing links from index"
}
},
{
"id": "210907b9838cac35",
"type": "leaf",
"state": {
"type": "tag",
"state": {
"sortOrder": "frequency",
"useHierarchy": true,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-tags",
"title": "Tags"
}
},
{
"id": "f2e44745914b6556",
"type": "leaf",
"state": {
"type": "outline",
"state": {
"file": "01-architecture/index.md",
"followCursor": false,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-list",
"title": "Outline of index"
}
}
]
}
],
"direction": "horizontal",
"width": 300,
"collapsed": true
},
"left-ribbon": {
"hiddenItems": {
"switcher:Open quick switcher": false,
"graph:Open graph view": false,
"canvas:Create new canvas": false,
"daily-notes:Open today's daily note": false,
"templates:Insert template": false,
"command-palette:Open command palette": false
}
},
"active": "fe085d296b05d361",
"lastOpenFiles": [
"01-architecture/index.md",
"00-overview/index.md"
]
}