init push
This commit is contained in:
51
internal/repository/mysql/fleet_history_repo.go
Normal file
51
internal/repository/mysql/fleet_history_repo.go
Normal file
@@ -0,0 +1,51 @@
|
||||
package mysql
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
|
||||
"gorm.io/gorm"
|
||||
|
||||
fleethistory "wucher/internal/domain/fleet_history"
|
||||
)
|
||||
|
||||
type FleetHistoryRepository struct{ db *gorm.DB }
|
||||
|
||||
func NewFleetHistoryRepository(db *gorm.DB) *FleetHistoryRepository {
|
||||
return &FleetHistoryRepository{db: db}
|
||||
}
|
||||
|
||||
func (r *FleetHistoryRepository) Create(ctx context.Context, row *fleethistory.FleetHistory) error {
|
||||
return r.db.WithContext(ctx).Create(row).Error
|
||||
}
|
||||
|
||||
func (r *FleetHistoryRepository) ListByHelicopter(ctx context.Context, helicopterID []byte, limit, offset int) ([]fleethistory.FleetHistory, int64, error) {
|
||||
rows := make([]fleethistory.FleetHistory, 0)
|
||||
var total int64
|
||||
base := r.db.WithContext(ctx).
|
||||
Model(&fleethistory.FleetHistory{}).
|
||||
Where("helicopter_id = ?", helicopterID)
|
||||
if err := base.Count(&total).Error; err != nil {
|
||||
return nil, 0, err
|
||||
}
|
||||
q := base.Order("created_at DESC")
|
||||
if limit > 0 {
|
||||
q = q.Limit(limit).Offset(offset)
|
||||
}
|
||||
err := q.Find(&rows).Error
|
||||
return rows, total, err
|
||||
}
|
||||
|
||||
func (r *FleetHistoryRepository) HelicopterIDByInspection(ctx context.Context, inspectionID []byte) ([]byte, error) {
|
||||
var out []byte
|
||||
err := r.db.WithContext(ctx).
|
||||
Table("reserve_acs").
|
||||
Select("helicopter_id").
|
||||
Where("inspection_id = ?", inspectionID).
|
||||
Limit(1).
|
||||
Scan(&out).Error
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
return nil, nil
|
||||
}
|
||||
return out, err
|
||||
}
|
||||
Reference in New Issue
Block a user