servicecontext.go 678 B

12345678910111213141516171819202122232425262728293031323334
  1. package svc
  2. import (
  3. "slowwild/internal/config"
  4. "slowwild/internal/model"
  5. "gorm.io/driver/mysql"
  6. "gorm.io/gorm"
  7. "gorm.io/gorm/schema"
  8. )
  9. type ServiceContext struct {
  10. Config config.Config
  11. UserModel model.UserModel
  12. UserFollowModel model.UserFollowModel
  13. }
  14. func NewServiceContext(c config.Config) *ServiceContext {
  15. db, err := gorm.Open(mysql.Open(c.DB.DataSource), &gorm.Config{
  16. NamingStrategy: schema.NamingStrategy{
  17. TablePrefix: "p_",
  18. SingularTable: true,
  19. },
  20. })
  21. if err != nil {
  22. panic(err)
  23. }
  24. return &ServiceContext{
  25. Config: c,
  26. UserModel: model.NewUserModel(db),
  27. UserFollowModel: model.NewUserFollowModel(db),
  28. }
  29. }