ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅: Π‘ΠΈΡΡΠ΅ΠΌΠ° ΠΌΠ΅Π½Π΅Π΄ΠΆΠΌΠ΅Π½ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ - ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠ΅ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ². ΠΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈ ΡΠΏΡΠΎΡΡΠΈΡΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅, ΠΏΠΎΠΈΡΠΊ, Π²ΡΠ΄Π°ΡΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°Ρ ΠΊΠ½ΠΈΠ³, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎ ΡΠΈΡΠ°ΡΠ΅Π»ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
Π¦Π΅Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°: ΠΏΠΎΠ²ΡΡΠΈΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΡΠ»ΡΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π΅Π΅ ΡΠ΅ΡΡΡΡΠ°ΠΌ ΠΈ ΠΎΠ±Π»Π΅Π³ΡΠΈΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΡΠΌΠΈ ΠΈ ΡΠΈΡΠ°ΡΠ΅Π»ΡΠΌΠΈ.
- ID (string): Π£Π½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠ»Π΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
- Name (string): ΠΠΌΡ ΡΠ»Π΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
- Address (string): ΠΠ΄ΡΠ΅Ρ ΠΏΡΠΎΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΠ»Π΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
- Email (string): ΠΠ»Π΅ΠΊΡΡΠΎΠ½Π½Π°Ρ ΠΏΠΎΡΡΠ° ΡΠ»Π΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
- CreatedAt (time): ΠΡΠ΅ΠΌΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΡΠ»Π΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅.
- ID (string): Π£Π½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΊΠ½ΠΈΠ³ΠΈ.
- Title (string): ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ.
- Author (string): ΠΠ²ΡΠΎΡ ΠΊΠ½ΠΈΠ³ΠΈ.
- PublicationYear (int): ΠΠΎΠ΄ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΊΠ½ΠΈΠ³ΠΈ.
- Genre (string): ΠΠ°Π½Ρ ΠΊΠ½ΠΈΠ³ΠΈ.
- AvailableCopies (int): ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΊΠΎΠΏΠΈΠΉ ΠΊΠ½ΠΈΠ³ΠΈ.
- TotalCopies (int): ΠΠ±ΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠΏΠΈΠΉ ΠΊΠ½ΠΈΠ³ΠΈ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅.
- ID (string): Π£Π½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π·Π°ΠΏΠΈΡΠΈ ΠΎ Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠ½ΠΈΠ³ΠΈ.
- BookID (string): ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΊΠ½ΠΈΠ³ΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ»Π° Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½Π°.
- MemberID (string): ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠ»Π΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π» ΠΊΠ½ΠΈΠ³Ρ.
- BorrowYear (int): ΠΠΎΠ΄, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΊΠ½ΠΈΠ³Π° Π±ΡΠ»Π° Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½Π°.
- ReturnYear (int): ΠΠΎΠ΄, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΊΠ½ΠΈΠ³Π° Π±ΡΠ»Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π°.
ΠΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΡΡΠΎΠΊΠΎΠ²ΡΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ², ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠΌ Π±ΡΡΡ Π³ΠΈΠ±ΠΊΠΈΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ObjectID() Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΡ Π² MongoDB. ΠΠΎΠ΄Π΅Π»Ρ Member Ρ ΡΠ°Π½ΠΈΡ Π±Π°Π·ΠΎΠ²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΈΡΠ°ΡΠ΅Π»ΡΡ . ΠΠΎΠ΄Π΅Π»Ρ Book Ρ ΡΠ°Π½ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠ½ΠΈΠ³Π°Ρ . ΠΠΎΠ΄Π΅Π»Ρ Borrowing ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ½ΠΈΠ³. ΠΡΠ΅ ΡΠΈΠΏΡ ΡΠ²ΡΠ·ΠΈ Π² ΠΌΠΎΠ΄Π΅Π»ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ One-to-Many.
- StorageFactory: ΠΠ±ΡΡΡΠ°ΠΊΡΠ½Π°Ρ ΡΠ°Π±ΡΠΈΠΊΠ°, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½Π°Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ, ΠΎΠ½ Π»ΠΈΡΡ Π·Π°Π΄Π°Π΅Ρ ΠΎΠ±ΡΠΈΠΉ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Ρ ΡΠ°Π½Π΅Π½ΠΈΡ.
- LocalStorageFactory: Π€Π°Π±ΡΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² LocalStorage. Π―Π²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° StorageFactory.
- MongoDBStorageFactory: Π€Π°Π±ΡΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² MongoDBStorage. Π―Π²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° StorageFactory. ΠΡΠ° ΡΠ°Π±ΡΠΈΠΊΠ° Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½Π°Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π΅ΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ MongoDB, ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΊΠ½ΠΈΠ³, ΡΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ ΠΈ Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠΉ, Π° Π·Π°ΡΠ΅ΠΌ Π²Π΅ΡΠ½ΡΡΡ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ MongoDBStorage.
- Storage ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΡΠ΅Ρ CRUD-ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠ½ΠΈΠ³Π°ΠΌΠΈ (Book), ΡΠΈΡΠ°ΡΠ΅Π»ΡΠΌΠΈ (Member) ΠΈ Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ (Borrowing).
- LocalStorage, MongoDBStorage: ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ»Π΅Π½ΠΎΠ² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠ½ΠΈΠ³ ΠΈ Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ½ΠΈΠ³ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ MongoDB ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
StorageFactory:
- CreateStorage(): Π‘ΠΎΠ·Π΄Π°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Storage Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠ°Π±ΡΠΈΠΊΠΈ.
Storage:
- GetAllMembersStorage(): ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΡΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ.
- GetMemberStorage(id string): ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΡΠΈΡΠ°ΡΠ΅Π»Π΅ ΠΏΠΎ Π΅Π³ΠΎ ID.
- AddMemberStorage(member Member): ΠΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΡΠ°ΡΠ΅Π»Ρ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°Ρ ΠΎΠ±ΡΠ΅ΠΊΡ Member Ρ Π΅Π³ΠΎ Π΄Π°Π½Π½ΡΠΌΠΈ.
- UpdateMemberStorage(id string, member Member): ΠΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΈΡΠ°ΡΠ΅Π»Π΅ ΠΏΠΎ Π΅Π³ΠΎ ID, ΠΏΡΠΈΠ½ΠΈΠΌΠ°Ρ ΠΎΠ±ΡΠ΅ΠΊΡ Member Ρ Π½ΠΎΠ²ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ.
- DeleteMemberStorage(id string): Π£Π΄Π°Π»ΡΠ΅Ρ ΡΠΈΡΠ°ΡΠ΅Π»Ρ ΠΏΠΎ Π΅Π³ΠΎ ID.
- GetAllBooksStorage(): ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΠΊΠ½ΠΈΠ³.
- GetBookStorage(id string): ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ ΠΏΠΎ Π΅Π΅ ID.
- AddBookStorage(book Book): ΠΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π½ΠΎΠ²ΡΡ ΠΊΠ½ΠΈΠ³Ρ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°Ρ ΠΎΠ±ΡΠ΅ΠΊΡ Book Ρ Π΅Π΅ Π΄Π°Π½Π½ΡΠΌΠΈ.
- UpdateBookStorage(id string, book Book): ΠΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠ½ΠΈΠ³Π΅ ΠΏΠΎ Π΅Π΅ ID, ΠΏΡΠΈΠ½ΠΈΠΌΠ°Ρ ΠΎΠ±ΡΠ΅ΠΊΡ Book Ρ Π½ΠΎΠ²ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ.
- DeleteBookStorage(id string): Π£Π΄Π°Π»ΡΠ΅Ρ ΠΊΠ½ΠΈΠ³Ρ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΠΎ Π΅Π΅ ID.
- GetAllBorrowingsStorage(): ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊΠ½ΠΈΠ³.
- GetBorrowingStorage(id string): ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎ Π΅Π³ΠΎ ID.
- AddBorrowingStorage(borrowing Borrowing): ΠΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π½ΠΎΠ²ΠΎΠ΅ Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°Ρ ΠΎΠ±ΡΠ΅ΠΊΡ Borrowing Ρ Π΅Π³ΠΎ Π΄Π°Π½Π½ΡΠΌΠΈ.
- UpdateBorrowingStorage(id string, borrowing Borrowing): ΠΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎ Π΅Π³ΠΎ ID, ΠΏΡΠΈΠ½ΠΈΠΌΠ°Ρ ΠΎΠ±ΡΠ΅ΠΊΡ Borrowing Ρ Π½ΠΎΠ²ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ.
- DeleteBorrowingStorage(id string): Π£Π΄Π°Π»ΡΠ΅Ρ Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ Π΅Π³ΠΎ ID.
- GetStorageFactory(): ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΈΠΏ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ("local" ΠΈΠ»ΠΈ "mongodb") ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΡΠ°Π±ΡΠΈΠΊΡ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π°Π±ΡΡΡΠ°ΠΊΡΠ½Π°Ρ ΡΠ°Π±ΡΠΈΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π°Π±ΡΡΡΠ°Π³ΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΌΠ΅Π½ΡΡΡ ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠΈΠΏΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ.
- Π Π΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ»ΠΎΠΉ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΈ. ΠΠ½ ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½Π½ΡΠΌ, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Ρ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΠΌ (Storage). Π Π΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π΄Π»Ρ ΡΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ (MemberRepository), ΠΊΠ½ΠΈΠ³ (BookRepository) ΠΈ Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠΉ (BorrowingRepository) Π΄ΠΎΠΏΠΎΠ»Π½ΡΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΊΠ»Π°ΡΡΠ° Repository.
- MemberRepository, BookRepository, BorrowingRepository Π Π΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π°Π½Π½ΡΡ .
MemberRepository:
- GetAllMembers(): ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΡΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ.
- GetMember(id string): ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΡΠΈΡΠ°ΡΠ΅Π»Π΅.
- AddMember(name string, address string, email string): ΠΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΡΠ°ΡΠ΅Π»Ρ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ.
- UpdateMember(id string, name *string, address *string, email *string): ΠΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΈΡΠ°ΡΠ΅Π»Π΅.
- DeleteMember(id string): Π£Π΄Π°Π»ΡΠ΅Ρ ΡΠΈΡΠ°ΡΠ΅Π»Ρ.
BookRepository:
- GetAllBooks(): ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΠΊΠ½ΠΈΠ³.
- GetBook(id string): ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅.
- AddBook(title string, author string, publicationYear int, genre string, totalCopies int): ΠΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π½ΠΎΠ²ΡΡ ΠΊΠ½ΠΈΠ³Ρ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ.
- UpdateBook(id *string, title *string, author *string, publicationYear *int, genre *string, availableCopies *int, totalCopies *int): ΠΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠ½ΠΈΠ³Π΅.
- DeleteBook(id string): Π£Π΄Π°Π»ΡΠ΅Ρ ΠΊΠ½ΠΈΠ³Ρ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
BookRepository:
- GetAllBorrowings(): ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊΠ½ΠΈΠ³.
- GetMemberBooks(memberID string): ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠ½ΠΈΠ³, Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΡΠΈΡΠ°ΡΠ΅Π»Π΅ΠΌ.
- BorrowBook(bookID string, memberID string, borrowYear int): ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ.
- ReturnBook(id string): ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΠΎΠ·Π²ΡΠ°Ρ ΠΊΠ½ΠΈΠ³ΠΈ.
- NewRepository(): ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΊΠ»Π°ΡΡ Repository.
- APIService - ΡΡΠΎ ΡΠ΅ΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ API. ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ»ΠΎΠΉ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΈ (Repository) Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ, Π° Π·Π°ΡΠ΅ΠΌ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅. APIService ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ API-Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π² ΡΠ²ΠΎΠ΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ° Repository.
Member:
- getAllMembersHandler(): ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ GetAllMembers. GET /members
- getMemberHandler(): ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ GetMember. GET /members/{memberID}
- addMemberHandler(): ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ AddMember. POST /members
- deleteMemberHandler(): ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ DeleteMember. DELETE /members/{memberID}
- updateMemberHandler(): ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ UpdateMember. PUT /members/{memberID}
ΠΠ½ΠΈΠ³ΠΈ:
- getAllBooksHandler(): ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ GetAllBooks. GET /books
- getBookHandler(): ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ GetBook. GET /books/{bookID}
- addBookHandler(): ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ AddBook. POST /books
- deleteBookHandler(): ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ DeleteBook. DELETE /books/{bookID}
- updateBookHandler(): ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ UpdateBook. PUT /books/{bookID}
ΠΠ°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ:
- getAllBorrowingsHandler(): ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ GetAllBorrowings. GET /borrowings
- getMemberBooksHandler(): ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ GetMemberBooks. GET /borrowings/{memberID}
- borrowBookHandler(): ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ BorrowBook. POST /borrowings
- returnBookHandler(): ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ ReturnBook. PUT /borrowings/{borrowingID}
- NewAPIService(): Π‘ΠΎΠ·Π΄Π°Π΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠ° APIService. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΡΠΎΠ·Π΄Π°Π΅Ρ singleton, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ APIService.
- RegisterAPIEndpoints(apiService *APIService): Π Π΅Π³ΠΈΡΡΡΠΈΡΡΠ΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ API-Π·Π°ΠΏΡΠΎΡΠΎΠ² Π΄Π»Ρ ΡΠ΅ΡΠ²ΠΈΡΠ°.
- StartServer(handler http.Handler): ΠΠ°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΠ΅ΡΠ²Π΅Ρ.




