67060c73b2
Identity (discounts):
- DiscountsController: PUT /v1/discounts/{id}, DELETE /v1/discounts/{id}
- DiscountService.UpdateAsync (partial update, code-clash guard) + DeleteAsync
- UpdateDiscountRequest record (all fields optional incl. is_active)
- Frontend discountsConfig: canEdit + canDelete + is_active field
Content (scenes/colors — UI for existing CRUD endpoints):
- New SceneColorEditor.tsx: 3-tab modal (scenes / shared-colors / color-presets),
project-scoped, full add/edit/delete per tab, colour pickers + palette item editor
- Wired into TemplatesAdmin: "صحنهها و رنگها" button per template variant row
- Routes through the generic admin proxy with ?project_id=
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
47 lines
1.2 KiB
C#
47 lines
1.2 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
|
|
namespace FlatRender.IdentitySvc.Models.Requests;
|
|
|
|
public record PurchasePlanRequest(
|
|
[Required] Guid PlanId,
|
|
string? Gateway,
|
|
string? DiscountCode
|
|
);
|
|
|
|
public record ValidateDiscountRequest([Required] string Code, Guid? PlanId);
|
|
|
|
public record CreateDiscountRequest(
|
|
[Required] string Name,
|
|
[Required] string Code,
|
|
[Required] string Kind,
|
|
[Required] decimal Value,
|
|
Guid? OwnerUserId,
|
|
decimal OwnerProfitPercentage = 0,
|
|
int? MaxUseCount = null,
|
|
Guid[]? AppliesToPlanIds = null,
|
|
DateTime? StartsAt = null,
|
|
DateTime? ExpiresAt = null
|
|
);
|
|
|
|
// Partial update — every field optional; only non-null values are applied.
|
|
public record UpdateDiscountRequest(
|
|
string? Name = null,
|
|
string? Code = null,
|
|
string? Kind = null,
|
|
decimal? Value = null,
|
|
Guid? OwnerUserId = null,
|
|
decimal? OwnerProfitPercentage = null,
|
|
int? MaxUseCount = null,
|
|
Guid[]? AppliesToPlanIds = null,
|
|
DateTime? StartsAt = null,
|
|
DateTime? ExpiresAt = null,
|
|
bool? IsActive = null
|
|
);
|
|
|
|
public record IssueRefundRequest(
|
|
[Required] Guid PaymentId,
|
|
long? AmountMinor,
|
|
[Required] string Reason,
|
|
string RefundTo = "Balance"
|
|
);
|