using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using xModels.Base;
namespace xTermsAndConditionsService.Interfaces
{
///
/// an Interface for Describing Terms and Conditions Management Controller Actions ...
///
public interface IXTermsAndComditionsController
{
///
/// Retrieved all Exists Languages Terms and Conditions ...
///
///
[HttpGet("Terms/Languages")]
Task>> TermsLanguages(
CancellationToken cancellationToken = default
);
///
/// Check Has Terms and Conditions based on Specified Language ...
///
/// if null, used Default Language ...
///
[HttpGet("Terms/{language}/Has")]
Task> HasTerms(
[FromRoute] string language = null,
CancellationToken cancellationToken = default
);
///
/// Retrieve Terms and Conditions for Specified Language ...
///
/// if null, used Default Language ...
///
[HttpGet("Terms/{language}")]
Task> GetTerms(
[FromRoute] string language = null,
CancellationToken cancellationToken = default
);
///
/// Add Terms and Conditions for Specified Language ...
///
///
///
///
[HttpPost("Terms/{language}")]
Task> AddTerms(
[FromRoute] string language,
[FromBody] XBaseValueContainer terms,
CancellationToken cancellationToken = default
);
///
/// Remove Terms and Conditions of Specified Language ...
///
///
///
[HttpDelete("Terms/{language}")]
Task> RemoveTerms(
[FromRoute] string language,
CancellationToken cancellationToken = default
);
///
/// Update Terms and Conditions of Specified Language ...
///
///
///
///
[HttpPut("Terms/{language}")]
Task> UpdateTerms(
[FromRoute] string language,
[FromBody] XBaseValueContainer terms,
CancellationToken cancellationToken = default
);
}
}