using FoodLabeling.Application.Contracts.Dtos.UsAppAuth; using Volo.Abp.Application.Services; using Yi.Framework.Rbac.Application.Contracts.Dtos.Account; namespace FoodLabeling.Application.Contracts.IServices; /// /// 美国版移动端认证(登录返回绑定门店) /// public interface IUsAppAuthAppService : IApplicationService { /// /// App 登录:使用邮箱 + 密码校验并签发 Token,同时返回 userlocation 绑定的门店 /// Task LoginAsync(UsAppLoginInputVo input); /// /// 获取当前登录账号已绑定的门店(用于切换门店等场景) /// Task> GetMyLocationsAsync(); /// /// 获取当前登录用户资料(My Profile:姓名、邮箱、电话、员工号、角色) /// /// 资料 DTO /// 成功 /// 未登录或用户不存在 /// 服务器错误 Task GetMyProfileAsync(); /// /// 当前登录用户修改密码(校验原密码与复杂度规则) /// /// 当前密码、新密码、确认密码 /// /// 新密码需满足:至少 8 位;含大写与小写字母;至少 1 位数字;至少 1 个非字母数字特殊字符。 /// /// 成功 /// 参数或校验失败 /// 服务器错误 Task ChangePasswordAsync(UsAppChangePasswordInputVo input); /// /// 按门店 Id 查询 Location 详情(须为当前账号 userlocation 绑定门店) /// /// 门店 Guid 字符串 /// 店名、地址、电话、经营时间(operatingHours)、店长信息 /// 成功 /// 参数非法、未绑定或无权限 /// 服务器错误 Task GetLocationDetailAsync(string locationId); /// /// App forgot password: send email verification code (same user store and rules as platform). /// /// /// When RbacOptions.EnableCaptcha is true, pass Uuid and Code from platform captcha API. /// /// Email and optional image captcha. /// Accepted. /// Validation or rate limit. /// Server error Task PostSendForgotPasswordCodeByEmailAsync(EmailCaptchaImageDto input); /// /// App forgot password: reset password with email OTP. /// /// Email, OTP, new password. /// Account user name. /// Password updated. /// Invalid code or password policy. /// Server error Task PostResetPasswordByEmailAsync(RetrievePasswordByEmailDto input); }