1
0

import-cancelled-memberships-if-booking-exist ()

Co-authored-by: Michael Hoennig <michael@hoennig.de>
Reviewed-on: https://dev.hostsharing.net/hostsharing/hs.hsadmin.ng/pulls/36
Reviewed-by: Timotheus Pokorra <timotheus.pokorra@hostsharing.net>
This commit is contained in:
Michael Hoennig
2024-04-09 10:22:57 +02:00
parent 4314b647f6
commit 48f4cf8ed6
19 changed files with 191 additions and 119 deletions

@@ -3,15 +3,17 @@ components:
schemas:
HsOfficeReasonForTermination:
HsOfficeMembershipStatus:
type: string
enum:
- NONE
- CANCELLATION
- TRANSFER
- DEATH
- LIQUIDATION
- EXPULSION
- INVALID
- ACTIVE
- CANCELLED
- TRANSFERRED
- DECEASED
- LIQUIDATED
- EXPULSED
- UNKNOWN
HsOfficeMembership:
type: object
@@ -38,8 +40,8 @@ components:
validTo:
type: string
format: date
reasonForTermination:
$ref: '#/components/schemas/HsOfficeReasonForTermination'
status:
$ref: '#/components/schemas/HsOfficeMembershipStatus'
membershipFeeBillable:
type: boolean
@@ -50,9 +52,8 @@ components:
type: string
format: date
nullable: true
reasonForTermination:
nullable: true
$ref: '#/components/schemas/HsOfficeReasonForTermination'
status:
$ref: '#/components/schemas/HsOfficeMembershipStatus'
membershipFeeBillable:
nullable: true
type: boolean
@@ -79,8 +80,8 @@ components:
type: string
format: date
nullable: true
reasonForTermination:
$ref: '#/components/schemas/HsOfficeReasonForTermination'
status:
$ref: '#/components/schemas/HsOfficeMembershipStatus'
membershipFeeBillable:
nullable: false
type: boolean

@@ -1,4 +1,4 @@
openapi: 3.0.1
openapi: 3.0.3
info:
title: Hostsharing hsadmin-ng API
version: v0

@@ -4,9 +4,18 @@
--changeset hs-office-membership-MAIN-TABLE:1 endDelimiter:--//
-- ----------------------------------------------------------------------------
CREATE TYPE HsOfficeReasonForTermination AS ENUM ('NONE', 'CANCELLATION', 'TRANSFER', 'DEATH', 'LIQUIDATION', 'EXPULSION', 'UNKNOWN');
CREATE TYPE HsOfficeMembershipStatus AS ENUM (
'INVALID',
'ACTIVE',
'CANCELLED',
'TRANSFERRED',
'DECEASED',
'LIQUIDATED',
'EXPULSED',
'UNKNOWN'
);
CREATE CAST (character varying as HsOfficeReasonForTermination) WITH INOUT AS IMPLICIT;
CREATE CAST (character varying as HsOfficeMembershipStatus) WITH INOUT AS IMPLICIT;
create table if not exists hs_office_membership
(
@@ -15,7 +24,7 @@ create table if not exists hs_office_membership
partnerUuid uuid not null references hs_office_partner(uuid),
memberNumberSuffix char(2) not null check (memberNumberSuffix::text ~ '^[0-9][0-9]$'),
validity daterange not null,
reasonForTermination HsOfficeReasonForTermination not null default 'NONE',
status HsOfficeMembershipStatus not null default 'ACTIVE',
membershipFeeBillable boolean not null default true,
UNIQUE(partnerUuid, memberNumberSuffix)

@@ -172,7 +172,7 @@ call generateRbacRestrictedView('hs_office_membership',
$updates$
validity = new.validity,
membershipFeeBillable = new.membershipFeeBillable,
reasonForTermination = new.reasonForTermination
status = new.status
$updates$);
--//

@@ -28,8 +28,8 @@ begin
raise notice 'creating test Membership: M-% %', forPartnerNumber, newMemberNumberSuffix;
raise notice '- using partner (%): %', relatedPartner.uuid, relatedPartner;
insert
into hs_office_membership (uuid, partneruuid, memberNumberSuffix, validity, reasonfortermination)
values (uuid_generate_v4(), relatedPartner.uuid, newMemberNumberSuffix, daterange('20221001' , null, '[]'), 'NONE');
into hs_office_membership (uuid, partneruuid, memberNumberSuffix, validity, status)
values (uuid_generate_v4(), relatedPartner.uuid, newMemberNumberSuffix, daterange('20221001' , null, '[]'), 'ACTIVE');
end; $$;
--//