package repository import ( "context" "github.com/go-nunu/nunu-layout-advanced/internal/model" ) type GateWayGroupIpRepository interface { GetGateWayGroupIp(ctx context.Context, id int64) (*model.GateWayGroupIp, error) AddGateWayGroupIp(ctx context.Context, req *model.GateWayGroupIp) error EditGateWayGroupIp(ctx context.Context, req *model.GateWayGroupIp) error DeleteGateWayGroupIp(ctx context.Context, req *model.GateWayGroupIp) error GetGateWayGroupIpByGatewayGroupId(ctx context.Context, gatewayGroupId int) ([]model.GateWayGroupIp, error) GetGateWayGroupFirstIpByGatewayGroupId(ctx context.Context, gatewayGroupId int) (string, error) GetGateWayGroupAllIpByGatewayGroupId(ctx context.Context, gatewayGroupId int) ([]string, error) } func NewGateWayGroupIpRepository( repository *Repository, ) GateWayGroupIpRepository { return &gateWayGroupIpRepository{ Repository: repository, } } type gateWayGroupIpRepository struct { *Repository } func (r *gateWayGroupIpRepository) GetGateWayGroupIp(ctx context.Context, id int64) (*model.GateWayGroupIp, error) { var gateWayGroupIp model.GateWayGroupIp return &gateWayGroupIp, nil } func (r *gateWayGroupIpRepository) AddGateWayGroupIp(ctx context.Context, req *model.GateWayGroupIp) error { if err := r.DB(ctx).Create(req).Error; err != nil { return err } return nil } func (r *gateWayGroupIpRepository) EditGateWayGroupIp(ctx context.Context, req *model.GateWayGroupIp) error { if err := r.DB(ctx).Model(&model.GateWayGroupIp{}).Where("id = ?", req.Id).Updates(req).Error; err != nil { return err } return nil } func (r *gateWayGroupIpRepository) DeleteGateWayGroupIp(ctx context.Context, req *model.GateWayGroupIp) error { if err := r.DB(ctx).Model(&model.GateWayGroupIp{}).Where("id = ?", req.Id).Delete(req).Error; err != nil { return err } return nil } func (r *gateWayGroupIpRepository) GetGateWayGroupIpByGatewayGroupId(ctx context.Context, gatewayGroupId int) ([]model.GateWayGroupIp, error) { var res []model.GateWayGroupIp if err := r.DB(ctx).Model(&model.GateWayGroupIp{}).Where("gateway_group_id = ?", gatewayGroupId).Find(&res).Error; err != nil { return nil, err } return res, nil } func (r *gateWayGroupIpRepository) GetGateWayGroupFirstIpByGatewayGroupId(ctx context.Context, gatewayGroupId int) (string, error) { var res string if err := r.DB(ctx).Model(&model.GateWayGroupIp{}).Where("gateway_group_id = ?", gatewayGroupId).Select("ip").First(&res).Error; err != nil { return "", err } return res, nil } func (r *gateWayGroupIpRepository) GetGateWayGroupAllIpByGatewayGroupId(ctx context.Context, gatewayGroupId int) ([]string, error) { var res []string if err := r.DB(ctx).Model(&model.GateWayGroupIp{}).Where("gateway_group_id = ?", gatewayGroupId).Select("ip").Find(&res).Error; err != nil { return nil, err } return res, nil }