package dutyroster import ( "context" "time" ) type Service interface { Create(ctx context.Context, row *DutyRoster, crews []DutyRosterCrew) error Update(ctx context.Context, row *DutyRoster, crews []DutyRosterCrew) error Delete(ctx context.Context, id []byte, deletedBy []byte) error HardDelete(ctx context.Context, id []byte) error DeleteCrews(ctx context.Context, id []byte, crews []DutyRosterCrew, deletedBy []byte) ([]DeletedCrewResult, error) GetBaseDefaultShift(ctx context.Context, baseID []byte, baseType string) (string, error) ResolveBaseDefaultShiftRange(ctx context.Context, baseID []byte, baseType string) (string, string, error) GetHeaderByID(ctx context.Context, id []byte) (*HeaderView, error) GetHeaderByIDByBaseType(ctx context.Context, id []byte, baseType string) (*HeaderView, error) GetCrewsByRosterIDs(ctx context.Context, rosterIDs [][]byte) ([]CrewView, error) ListHeadersByRange(ctx context.Context, baseID []byte, from, to time.Time) ([]HeaderView, error) ListHeadersByRangeByBaseType(ctx context.Context, baseID []byte, from, to time.Time, baseType string) ([]HeaderView, error) ListHEMSBases(ctx context.Context, baseID []byte) ([]BaseView, error) ListBasesByType(ctx context.Context, baseID []byte, baseType string) ([]BaseView, error) }