This commit is contained in:
xds
2025-10-16 15:06:20 +03:00
commit 040da34ff7
78 changed files with 3934 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
package space.luminic.finance.repos
import org.springframework.data.mongodb.repository.ReactiveMongoRepository
import space.luminic.finance.models.Account
interface AccountRepo : ReactiveMongoRepository<Account, String> {
}

View File

@@ -0,0 +1,14 @@
package space.luminic.finance.repos
import org.bson.types.ObjectId
import org.springframework.data.mongodb.repository.ReactiveMongoRepository
import org.springframework.stereotype.Repository
import reactor.core.publisher.Flux
import space.luminic.finance.models.Budget
@Repository
interface BudgetRepo: ReactiveMongoRepository<Budget, String> {
suspend fun findBudgetsBySpaceIdAndIsDeletedFalse(spaceId: String): Flux<Budget>
suspend fun findBudgetsBySpaceIdAndId(spaceId: String, budgetId: String): Flux<Budget>
}

View File

@@ -0,0 +1,9 @@
package space.luminic.finance.repos
import org.springframework.data.mongodb.repository.ReactiveMongoRepository
import space.luminic.finance.models.Category
interface CategoryRepo: ReactiveMongoRepository<Category, String> {
}
interface CategoryEtalonRepo: ReactiveMongoRepository<Category.CategoryEtalon, String>

View File

@@ -0,0 +1,8 @@
package space.luminic.finance.repos
import org.springframework.data.mongodb.repository.ReactiveMongoRepository
import space.luminic.finance.models.Currency
import space.luminic.finance.models.CurrencyRate
interface CurrencyRepo: ReactiveMongoRepository<Currency, String>
interface CurrencyRateRepo: ReactiveMongoRepository<CurrencyRate, String>

View File

@@ -0,0 +1,8 @@
package space.luminic.finance.repos
import org.springframework.data.mongodb.core.ReactiveMongoTemplate
import org.springframework.data.mongodb.repository.ReactiveMongoRepository
import space.luminic.finance.models.Space
interface SpaceRepo: ReactiveMongoRepository<Space, String> {
}

View File

@@ -0,0 +1,21 @@
package space.luminic.finance.repos
import org.bson.types.ObjectId
import org.springframework.data.mongodb.repository.Query
import org.springframework.data.mongodb.repository.ReactiveMongoRepository
import org.springframework.stereotype.Repository
import reactor.core.publisher.Flux
import space.luminic.finance.models.Subscription
@Repository
interface SubscriptionRepo : ReactiveMongoRepository<Subscription, String> {
@Query("{ \$and: [ " +
"{ 'user': { '\$ref': 'users', '\$id': ?0 } }, " +
"{ 'isActive': true } " +
"]}")
fun findByUserIdAndIsActive(userId: ObjectId): Flux<Subscription>
}

View File

@@ -0,0 +1,15 @@
package space.luminic.finance.repos
import org.springframework.data.mongodb.repository.ReactiveMongoRepository
import org.springframework.stereotype.Repository
import reactor.core.publisher.Mono
import space.luminic.finance.models.Token
import java.time.LocalDateTime
@Repository
interface TokenRepo: ReactiveMongoRepository<Token, String> {
fun findByToken(token: String): Mono<Token>
fun deleteByExpiresAtBefore(dateTime: LocalDateTime)
}

View File

@@ -0,0 +1,7 @@
package space.luminic.finance.repos
import org.springframework.data.mongodb.repository.ReactiveMongoRepository
import space.luminic.finance.models.Transaction
interface TransactionRepo: ReactiveMongoRepository<Transaction, String> {
}

View File

@@ -0,0 +1,19 @@
package space.luminic.finance.repos
import org.springframework.data.mongodb.repository.Query
import org.springframework.data.mongodb.repository.ReactiveMongoRepository
import org.springframework.stereotype.Repository
import reactor.core.publisher.Mono
import space.luminic.finance.models.User
@Repository
interface UserRepo : ReactiveMongoRepository<User, String> {
@Query(value = "{ 'username': ?0 }", fields = "{ 'password': 0 }")
fun findByUsernameWOPassword(username: String): Mono<User>
fun findByUsername(username: String): Mono<User>
fun findByTgId(id: String): Mono<User>
}