package space.luminic.finance.models import org.springframework.data.annotation.CreatedBy import org.springframework.data.annotation.CreatedDate import org.springframework.data.annotation.Id import org.springframework.data.annotation.LastModifiedBy import org.springframework.data.annotation.LastModifiedDate import org.springframework.data.mongodb.core.mapping.Document import org.springframework.data.annotation.Transient import space.luminic.finance.dtos.UserDTO import java.math.BigDecimal import java.text.Bidi import java.time.Instant import java.time.LocalDate @Document(collection = "goals") data class Goal( @Id val id: String? = null, val spaceId: String, val type: GoalType, val name: String, val description: String? = null, val goalAmount: BigDecimal, val goalDate: LocalDate, @CreatedBy val createdById: String, @Transient val createdBy: User? = null, @CreatedDate val createdAt: Instant? = null, @LastModifiedBy val updatedById: String, @Transient val updatedBy: User? = null, @LastModifiedDate val updatedAt: Instant? = null, ) { enum class GoalType(val displayName: String, val icon: String) { AUTO("Авто", "🏎️"), VACATION("Отпуск", "🏖️"), GOODS("Покупка", "🛍️"), OTHER("Прочее", "💸") } }