package infrastructure import ( "context" "mengstack/internal/modules/org/domain" "gorm.io/gorm" ) type tenantRepo struct { db *gorm.DB } func NewTenantRepository(db *gorm.DB) domain.TenantRepository { return &tenantRepo{db: db} } func (r *tenantRepo) Create(ctx context.Context, tenant *domain.Tenant) error { return r.db.WithContext(ctx).Create(tenant).Error } func (r *tenantRepo) FindByID(ctx context.Context, id string) (*domain.Tenant, error) { var tenant domain.Tenant err := r.db.WithContext(ctx).Where("id = ?", id).First(&tenant).Error return &tenant, err } func (r *tenantRepo) FindBySlug(ctx context.Context, slug string) (*domain.Tenant, error) { var tenant domain.Tenant err := r.db.WithContext(ctx).Where("slug = ?", slug).First(&tenant).Error return &tenant, err } func (r *tenantRepo) FindAll(ctx context.Context) ([]domain.Tenant, error) { var tenants []domain.Tenant err := r.db.WithContext(ctx).Order("created_at DESC").Find(&tenants).Error return tenants, err } func (r *tenantRepo) Update(ctx context.Context, tenant *domain.Tenant) error { return r.db.WithContext(ctx).Save(tenant).Error } func (r *tenantRepo) Delete(ctx context.Context, id string) error { return r.db.WithContext(ctx).Where("id = ?", id).Delete(&domain.Tenant{}).Error }