# Soneta ORM AI Skills Zestaw skills dla asystentów AI (Claude, Cursor, Windsurf, itp.) wspierających programowanie z ORM platformy **enova365/Soneta Enterprise**. ## 🎯 Cel projektu Skille zawierają dokumentację i wzorce programistyczne, które pozwalają asystentom AI efektywnie pomagać w tworzeniu dodatków dla systemu enova365. Dzięki nim AI rozumie specyfikę platformy Soneta: mapowanie obiektowo-relacyjne, strukturę modułów, zarządzanie sesjami i transakcjami. ## 📦 Dostępne skille ### 1. soneta-programming-basics Fundamentalne klasy ORM platformy enova365/Soneta Enterprise. **Zakres:** - Mapowanie obiektowo-relacyjne (`Row`, `Table`, `Module`) - Zarządzanie sesją (`Session`) i transakcjami biznesowymi - Logowanie i dostęp do bazy (`Login`, `Database`, `BusApplication`) - Paczki danych (`Datapack`, `GuidedRow`) i synchronizacja - Kontekst aplikacji (`Context`) **Kiedy używać:** - Pytania o podstawowe klasy logiki biznesowej - Praca z sesjami i transakcjami - Tworzenie, modyfikacja i usuwanie obiektów - Zrozumienie hierarchii `Row` → `Table` → `Module` ### 2. enova365-business-xml Generator plików `business.xml` definiujących strukturę obiektów biznesowych. **Zakres:** - Definiowanie tabel i kolumn - Typy danych (proste, relacyjne, złożone) - Relacje między obiektami (1:N, N:1, polimorficzne) - Klucze i indeksy - Wzorce: słowniki, dokumenty z pozycjami, historia zmian **Kiedy używać:** - Tworzenie nowego modułu biznesowego - Definiowanie encji do przechowywania w bazie - Tworzenie relacji między obiektami - Generowanie plików `*.business.xml` ## 🚀 Instalacja ### Claude Desktop / Claude.ai Skopiuj folder ze skillem do katalogu skills w konfiguracji Claude. ### Cursor / Windsurf / inne IDE Dodaj zawartość skilli do kontekstu projektu lub rules. ## 📁 Struktura repozytorium ``` soneta-ai-skills/ ├── README.md ├── soneta-programming-basics/ │ ├── SKILL.md # Główna dokumentacja │ └── references/ │ ├── session-login.md # BusApplication, Database, Login, Session │ ├── datapack-guidedrow.md # Paczki danych, GuidedRow, synchronizacja │ ├── context.md # Klasa Context, komunikacja UI ↔ logika │ └── examples.md # Przykłady kodu i wzorce użycia │ └── enova365-business-xml/ ├── SKILL.md # Główna dokumentacja ├── assets/ │ └── business_struct.xsd # Schemat XSD dla walidacji └── references/ ├── modules-catalog.md # Katalog modułów enova365 ├── table-reference.md # Dokumentacja atrybutów table i col ├── relations-guide.md # Tworzenie relacji między obiektami └── examples.md # Przykłady z rzeczywistych modułów ``` ## 💡 Przykłady użycia ### Tworzenie nowego obiektu ```csharp using (var session = login.CreateSession(false, false, "Dodawanie")) { var tm = session.GetTowary(); using (var transaction = session.Logout(editMode: true)) { var towar = new Towar(); tm.Towary.AddRow(towar); towar.Kod = "NOWY001"; towar.Nazwa = "Nowy towar"; transaction.Commit(); } session.Save(); } ``` ### Definicja obiektu w business.xml ```xml