/* Options:
Date: 2025-04-09 04:00:09
Version: 6.10
Tip: To override a DTO option, remove "//" prefix before updating
BaseUrl: https://staging-api.billiecart.com.au

//GlobalNamespace: 
//AddServiceStackTypes: True
//AddResponseStatus: False
//AddImplicitVersion: 
//AddDescriptionAsComments: True
IncludeTypes: ConfirmPasswordResetRequest.*
//ExcludeTypes: 
//DefaultImports: package:servicestack/servicestack.dart
*/

import 'package:servicestack/servicestack.dart';

abstract class PostOperationUnTenanted<TResponse> implements IPost
{
    PostOperationUnTenanted();
    PostOperationUnTenanted.fromJson(Map<String, dynamic> json) : super();
    fromMap(Map<String, dynamic> json) {
        return this;
    }

    Map<String, dynamic> toJson() => {};
    getTypeName() => "PostOperationUnTenanted<$TResponse>";
    TypeContext? context = _ctx;
}

class ConfirmPasswordResetResponse implements IConvertible
{
    ResponseStatus? responseStatus;

    ConfirmPasswordResetResponse({this.responseStatus});
    ConfirmPasswordResetResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        responseStatus = JsonConverters.fromJson(json['responseStatus'],'ResponseStatus',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'responseStatus': JsonConverters.toJson(responseStatus,'ResponseStatus',context!)
    };

    getTypeName() => "ConfirmPasswordResetResponse";
    TypeContext? context = _ctx;
}

// @Route("/users/passwords/reset/confirm", "POST")
class ConfirmPasswordResetRequest extends PostOperationUnTenanted<ConfirmPasswordResetResponse> implements IReturn<ConfirmPasswordResetResponse>, IConvertible
{
    String? token;

    ConfirmPasswordResetRequest({this.token});
    ConfirmPasswordResetRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        token = json['token'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'token': token
    });

    createResponse() => ConfirmPasswordResetResponse();
    getResponseTypeName() => "ConfirmPasswordResetResponse";
    getTypeName() => "ConfirmPasswordResetRequest";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'staging_api.billiecart.com.au', types: <String, TypeInfo> {
    'PostOperationUnTenanted<TResponse>': TypeInfo(TypeOf.AbstractClass),
    'ConfirmPasswordResetResponse': TypeInfo(TypeOf.Class, create:() => ConfirmPasswordResetResponse()),
    'ConfirmPasswordResetRequest': TypeInfo(TypeOf.Class, create:() => ConfirmPasswordResetRequest()),
});