# Functions
AddSongHandler godoc
@Summary Add a new song @Description Adds a new song to the library @Tags Song Library @Accept json @Produce json @Param request body helpers.AddSongRequest true "Request body containing song details" @Success 200 {object} helpers.AddSongResponse "Response with song ID" @Failure 400 {object} helpers.ErrResponse "Bad request" @Failure 404 {object} helpers.ErrResponse "Not found" @Failure 500 {object} helpers.ErrResponse "Internal error" @Router /add_song [post].
ChangeSongHandler godoc
@Summary Change song data @Description Changing song data by its ID @Tags Song Library @Produce json @Param id path string true "Song ID"
@Param changes[new_group_name] query string false "The new group name" @Param changes[new_song_name] query string false "The new song name" @Param changes[new_link] query string false "The new song link" @Param changes[new_release_date] query string false "The new release date"
@Success 200 @Failure 400 {object} helpers.ErrResponse "Bad request" @Failure 404 {object} helpers.ErrResponse "Not found" @Failure 500 {object} helpers.ErrResponse "Internal error" @Router /change_song/{id} [patch].
DeleteSongHandler godoc
@Summary Delete a song @Description Deletes a song by its ID @Tags Song Library @Produce json @Param id path string true "Song ID" @Success 200 @Failure 400 {object} helpers.ErrResponse "Bad request" @Failure 404 {object} helpers.ErrResponse "Not found" @Failure 500 {object} helpers.ErrResponse "Internal error" @Router /delete_song/{id} [delete].
GetInfoHandler godoc
@Summary Get songs info @Description Get songs info from library @Tags Song Library @Produce json @Param filters[group] query string false "group filter" @Param filters[song] query string false "song filter" @Param filters[release_date_start] query string false "release start date filter (support gt,gte)" @Param filters[release_date_end] query string false "release end date filter (support lt,lte)" @Param filters[release_date] query string false "release date filter" @Param page query string true "page num" @Param limit query string true "limit num"
@Success 200 {object} helpers.GetFilteredSongs "Response with filtered songs"
@Failure 400 {object} helpers.ErrResponse "Bad request" @Failure 404 {object} helpers.ErrResponse "Not found" @Failure 500 {object} helpers.ErrResponse "Internal error" @Router /get_info [get].
GetLyricsSongHandler godoc
@Summary Get lyrics @Description Get lyrics with pagination @Tags Song Library @Produce json @Param id path string true "Song ID" @Param page query string true "page num" @Param limit query string true "limit num"
@Success 200 {object} helpers.GetLyricsResponse "Response with filtered songs"
@Failure 400 {object} helpers.ErrResponse "Bad request" @Failure 404 {object} helpers.ErrResponse "Not found" @Failure 500 {object} helpers.ErrResponse "Internal error" @Router /lyrics/{id} [get].